CakePHP在两个表之间连接模型,两次

CakePHP在两个表之间连接模型,两次,php,cakephp,entity-relationship,cakephp-model,Php,Cakephp,Entity Relationship,Cakephp Model,我有一个问题,当两个模型在两个不同的方面相互连接时,如何建立它们之间的关系 我将举例说明我遇到的问题: Users (id, name) Messages (id, message, from_user_id, to_user_id) (在我的例子中,这不是用户或消息,但希望这能以更简单的方式说明问题) 用户可以互相发送消息,每条消息都有一个发送消息的用户和一个将接收消息的用户。我试图找出模型之间的关系: class User extends AppModel { var $hasMa

我有一个问题,当两个模型在两个不同的方面相互连接时,如何建立它们之间的关系

我将举例说明我遇到的问题:

Users (id, name)
Messages (id, message, from_user_id, to_user_id)
(在我的例子中,这不是用户或消息,但希望这能以更简单的方式说明问题)

用户可以互相发送消息,每条消息都有一个发送消息的用户和一个将接收消息的用户。我试图找出模型之间的关系:

class User extends AppModel {
    var $hasMany = array("Message");
}

class Message extends AppModel {
    var $belongsTo = array("User");
}

我也不确定这些字段在数据库中应该如何命名,以便CakePHP能够正确地提取关系。

我已经能够使用关系选项解决它:

class Message extends AppModel {
    var $belongsTo = array(
        "FromUser" => array(
              "className" => "User"
            , "foreignKey" => "from_user_id"
            , "type" => "INNER"
        ),
        "ToUser" => array(
              "className" => "User"
            , "foreignKey" => "to_user_id"
            , "type" => "INNER"
        )
    );
}

class User extends AppModel {
    var $hasMany = array(
        "MessageFrom" => array(
              "className" => "Message"
            , "foreignKey" => "from_user_id"
        ),
        "MessageTo" => array(
              "className" => "Message"
            , "foreignKey" => "to_user_id"
        )
    );
}

我也很有帮助

我已经能够通过关系选项解决问题:

class Message extends AppModel {
    var $belongsTo = array(
        "FromUser" => array(
              "className" => "User"
            , "foreignKey" => "from_user_id"
            , "type" => "INNER"
        ),
        "ToUser" => array(
              "className" => "User"
            , "foreignKey" => "to_user_id"
            , "type" => "INNER"
        )
    );
}

class User extends AppModel {
    var $hasMany = array(
        "MessageFrom" => array(
              "className" => "Message"
            , "foreignKey" => "from_user_id"
        ),
        "MessageTo" => array(
              "className" => "Message"
            , "foreignKey" => "to_user_id"
        )
    );
}
我也很有帮助