CakePHP友谊

时间:2015-05-04 14:23:51

标签: php cakephp

我有两个表用户和友谊,我已经创建了模型和友谊控制器,但是一旦我尝试添加"一个朋友得到一个我错过的错误" add_friend"图。

这是来自Friendshipscontroller的add_friend函数

function add_friend ( $id ){
    if(!empty($this->data)){
        $this->Friendship->Create();
        if($this->Friendship->save($this->data)){
            $this->Session->setFlash('Friendship Requested');
            $this->redirect(array('controller'=>'users','action'=>'profile'));
        }
    }

这就是我在视图中引用它的方式

<?php echo 
$this->Html->link('Add as Friend', array('controller' => 'Friendships', 'action'=>'add_friend', h($user['User']['id']))); 

我不知道自己做错了什么,所以我不知道在哪里解决这个问题。

1 个答案:

答案 0 :(得分:3)

您方法中的第一行:

if(!empty($this->data)){

被评估为&#34; false&#34;因为$ this-&gt;数据中没有数据。因此,该方法没有执行任何其他操作,标准cakePHP流程仍在继续。这意味着,渲染视图。

显然,由于$ this-&gt;数据为空,因此您的方法的大多数代码都是错误的&#34;。谁和谁之间的友谊? 假设你已经在处理Auth,以及友谊和用户之间的关系,那么这样的事情就可以了:

function add_friend ( $id ){
if(!empty($id) && $this->Friendship->User->exists($id)){
    $this->Friendship->create();
    if($this->Friendship->save(array('user_id' => $id, 'requesteduser_id' => $this->Auth->user('id')))){
        $this->Session->setFlash('Friendship Requested');
        $this->redirect(array('controller'=>'users','action'=>'profile'));
    }
}

}

希望它有所帮助!