0

Web サイトの写真にコメントを追加する際に問題があります。コメントテーブル idには、、、、、、、、user_idがあります。photo_idcontentcreatedmodifiederased

ビューで私は作成します:

echo $this->Form->create('Comment');
echo $this->Form->input('title');
echo $this->Form->input('content');
echo $this->Form->input($this->Session->read('User.id'), array('type'=>'hidden'));
echo $this->Form->input($photo['Photo']['id'], array('type'=>'hidden'));
echo $this->Form->end('Add comment');

正しい方法かどうかはわかりません。user_id2 つの隠れた値がとであることをどうやって知るのphoto_idでしょうか?

アドバイスありがとうございます。

4

1 に答える 1

3

データが送信されるときに、コントローラーにユーザー ID を設定する必要があります (ユーザーが他のユーザーとして投稿できないようにするため)。ユーザー ID を取得できます$this->Auth->user('id');(組み込みの Auth コンポーネントを使用している場合)。写真 ID については、写真を読み込んでいるときに明らかにこれがどこかにあるので、$this->request->data保存する前にこのデータを渡す必要があります。

シンプルな CakePHP 2 のアプローチは次のようになります。

public function viewPhoto($photoId) { //$photoId comes from your routes or something

    if($this->request->is('post')) {
        $this->request->data['Comment']['user_id'] = $this->Auth->user('id');
        $this->request->data['Comment']['photo_id'] = $photoId;
        $this->Photo->Comment->save($this->request->data);
    }

}

この構造は、コントローラー/モデルの設定に応じて、わずかに異なります。

于 2012-07-16T09:25:51.123 に答える