CakePHP在Photo中添加评论

时间:2012-07-16 09:17:11

标签: php cakephp

我在网站上为照片添加评论时遇到问题。在评论表中我有: iduser_idphoto_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');

我不知道这是否正确。蛋糕会如何知道2个隐藏值是user_idphoto_id

表示建议。

1 个答案:

答案 0 :(得分:3)

提交数据时,您必须在控制器中填充用户ID(因此用户无法像其他用户一样发布)。您可以使用$this->Auth->user('id');获取用户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);
    }

}

根据您的控制器/型号设置,此结构会略有不同。