我在网站上为照片添加评论时遇到问题。在评论表中我有:
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');
我不知道这是否正确。蛋糕会如何知道2个隐藏值是user_id
和photo_id
?
表示建议。
答案 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);
}
}
根据您的控制器/型号设置,此结构会略有不同。