1

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

消息:id 消息 created_date 状态

用户:id usr_name

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

message_to: id message_id user_id 状态

现在,我的问题是我需要通过当前消息模型中 message_to 中的 user_id 从用户表中获取用户名。我怎样才能为此创建关系?我不想在这里使用查询生成器。

4

1 回答 1

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) { ...

于 2012-08-12T14:42:43.440 回答