0

私はまだ CakePHP で開発するコツをつかんでいますが、ちょっとした障害にぶつかっています。

問題:基本的に、コメント付きの投稿があります。私がやりたいのは、最近更新された投稿をインデックス ページの上部に表示することです (したがって、新しいコメントが投稿に追加されると、それが最新の場合は上部にプッシュされます)。

「updated」などと呼ばれる Post テーブルにタイムスタンプを設定することで、これを達成することを考えていました。その後、新しいコメントが追加されるたびに、投稿の更新されたフィールドが変更されます。次に、更新されたタイムスタンプに従って投稿をインデックスに表示します。

それが最善の方法でしょうか?もしそうなら、コメント コントローラから Posts テーブルのそのエントリをどのように変更しますか? または、コメントのビュー形式でそれを行いますか?

4

2 に答える 2

0

Comment モデルの afterSave コールバックを使用して、タイムスタンプを更新できます。

しかし、これを行う最善の方法は、コントローラーから $this->[model]->saveAssociated() メソッドを使用することだと思います。$this->Comment->saveAssociated($params);コメントの送信に次の構造を持たせることで、コメント コントローラーから呼び出すことができます 。

    //we know the Post.id
    $params => array(
       [Comment] => array(
                     'comment'=>'comment text',
                     'commented_by'=>'comment owner_id',
                   ),
       [Post] => array(
                     'id'=>1,
                     'commented_on'=>date('Y-m-d H:i:s')
                 )
    )
于 2013-03-16T06:51:14.393 に答える