代码之家  ›  专栏  ›  技术社区  ›  nickf

两个表之间的cakephp连接模型,两次

  •  1
  • nickf  · 技术社区  · 15 年前

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

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

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

    1 回复  |  直到 11 年前
        1
  •  5
  •   Community CDub    7 年前

    我已经能够用关系选项来解决这个问题:

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

    This question and answer 也很有帮助!

    推荐文章