1

フィールドを含むメッセージとユーザーの2つのテーブルのモデルがあります。

メッセージ: id メッセージ created_date ステータス

ユーザー: ID usr_name

モデルのない別のテーブル message_to があります。

message_to: ID message_id user_id ステータス

さて、私の問題は、現在のメッセージモデルの message_to の user_id を介して usertable からユーザー名を取得する必要があることです。このための関係を作成するにはどうすればよいですか? ここではクエリビルダーを使用したくありません。

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 に答える