1

我有一个关于如何在两个模型在两个不同方面相互连接时建立关系的问题。

我将举一个我遇到的问题的例子:

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 会正确地获取关系。

4

1 回答 1

5

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

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"
        )
    );
}

这个问答也很有帮助!

于 2009-09-07T06:37:33.807 回答