CakePHP HABTM关系问题

时间:2012-05-25 03:25:45

标签: cakephp has-and-belongs-to-many relationships

我正在尝试创建一个社交网络类型的网站,用户可以在其中发送/接收朋友请求。在我们当前的系统中,当用户发送请求时,所需信息的一半存储在数据库中,然后当用户接受其余信息时,输入其余信息。

relationships_users表是id,partyone,partytwo,expirydate,active

我遇到的问题是,一旦用户接受请求并输入到期日期,将其插入新列 - 而不是与该用户相关的列中

here is my add function

    if($this->request->is('post')){
    $this->Relationship->create(); 
    if ($this->Relationship->save($this->request->data)) 
    { 
        $this->Session->setFlash('The relationship has been saved');  

    }
    else { $this->Session->setFlash('The relationship could not be saved. Please, try again.'); } 
    } 

  }

here is my approve function

if($this->request->is('post')){
        $this->Relationship->create(); 
        $this->Relationship->save($this->request->data);
        $this->Session->setFlash('The information has been saved');}
        else{$this->Session->setFlash('The information couldnt be saved');}

我假设我错过了一些简单的代码,任何帮助将不胜感激 它插入一个新列 - 而不是与该用户关系相关的列*

1 个答案:

答案 0 :(得分:0)

你的帖子根本不是问题,但我理解你应该遵循下面描述的一些步骤:

  • 当信息的前半部分保存在Relationship表中时,您必须获得该条目的id,您可以得到以下信息:

    $this->Relationship->save($this->request->data);

    $lastId = $this->Relationship->id; // will gives you id of first half info saved

  • 然后你必须在请求确认后将$lastId与其余信息一起嵌入后半部分。如果您可以将该ID嵌入$this->request->data内的后半部分信息,那么$this->Relationship->save($this->request->data)将更新之前保存的行。在这种情况下,您不需要$this->Relationship->create();

    根据cakePHP,如果其中包含id的任何数据,则不会创建新行并保存,而是会更新具有该id的相应行。