フィールドを含むメッセージとユーザーの2つのテーブルのモデルがあります。
メッセージ: id メッセージ created_date ステータス
ユーザー: ID usr_name
モデルのない別のテーブル message_to があります。
message_to: ID message_id user_id ステータス
さて、私の問題は、現在のメッセージモデルの message_to の user_id を介して usertable からユーザー名を取得する必要があることです。このための関係を作成するにはどうすればよいですか? ここではクエリビルダーを使用したくありません。
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 に答える