0

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

我不知道这是否是正确的方法。cake 如何知道 2 个隐藏值是user_idphoto_id

谢谢你的建议。

4

1 回答 1

3

提交数据时,您必须在控制器中填充用户 ID(因此用户不能作为其他用户发布)。$this->Auth->user('id');您可以使用(假设您使用的是内置的 Auth 组件)来获取用户 ID 。至于照片 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 回答