想使用不同表的Id从不同的模型中获取数据吗?

时间:2012-08-12 14:36:06

标签: yii

  

我有两个表消息的模型和包含字段的用户:

     

消息:id message created_date status

     

用户:id usr_name

     

我有另一个没有模型的表message_to:

     

message_to:id message_id user_id status

     

现在,我的问题是我需要从usertable中获取用户名   当前消息模型中message_to中的user_id。我该怎么创造   这个关系?我不想在这里使用查询构建器。

1 个答案:

答案 0 :(得分:1)

在消息模型中:

<?php

class Message extends CActiveRecord {
    // ...
    public function relations() {
        return array(
            'user' => array(
                self::BELONGS_TO,
                'User',
                '{{message_to}}(message_id, user_id)'
            ),
        );
    }
}

然后像$message->user->usr_name;

一样打电话

要能够获取用户的消息,您可以在用户模型中编写关系:

<?php

class User extends CActiveRecord {
    /...
    public function relations() {
        return array(
            'messages' => array(
                self::HAS_MANY,
                'Message',
                '{{message_to}}(user_id, message_id)'
            ),
        );
    }
}

然后像foreach($user->messages as $message) { ...

一样打电话