我在网站上为照片添加评论时遇到问题。在评论表中,我有:id
、user_id
、photo_id
、content
、created
、modified
、erased
。
在视图中我创建:
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_id
和photo_id
?
谢谢你的建议。
提交数据时,您必须在控制器中填充用户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);
}
}
根据您的控制器/型号设置,此结构与您略有不同。