0

次のように単純化された Post モデルと posts テーブルがあります。

id | parent_id | lft| rght| title | body | type

タイプは「ページ」、「新規」、「サービス」などです。

投稿タイプ、fe に応じて異なるビュー テンプレートをレンダリングしています。

public function admin_view($id, $type){
    $posts = $this->paginate(array('Post.type' => $type));
    $this->set('posts', $posts);
}

投稿を並べ替え可能にするために、ツリー動作関数の moveUp() と moveDown() を使用します。主な問題は、正確なタイプの投稿のみを含むビューをレンダリングすると、関数 moveUp() または moveDow() が異なるタイプの投稿の場所を切り替える可能性があることです。また、現在のビューには変更が表示されません。

Tree Behavior に渡す追加のスコープ条件はありますか? コードをすべて調べましたが、役立つものは何も見つかりませんでした。

4

1 に答える 1

0

Tree Behavior にはスコープ機能があります。次のようにビヘイビアーをアタッチします $this->Post->Behaviors->attach('Tree', array('scope' => array('Post.group' => $type)));。このようにして、タイプごとに個別のサブツリーを管理できます。Post モデルでのすべての操作の前に、必ず適切なスコープを設定してください。

于 2013-01-31T11:48:40.127 に答える