2012-08-12 51 views
1

我有兩個表消息和用戶含有字段的模型:想要使用不同表格的Id從不同模型中獲取數據?

消息:ID消息CREATED_DATE狀態

用戶:ID usr_name

我有不使用模型的另一個表message_to:

message_to:id message_id user_id狀態

現在,我的問題是我需要從usertab獲取用戶名通過當前消息模型中的message_to中的 user_id。我如何爲此創建 關係?我不想在這裏使用查詢生成器。

回答

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

+0

謝謝你,Evgeniy。我可以在'消息'模型中使用關係'用戶'嗎? – AravindRaj 2012-08-12 14:45:02

+0

是的,這是消息模型的關係函數。我剛剛更新了使用示例的答案。 – 2012-08-12 14:46:08

+0

非常好。謝謝Evgeniy Naydenov。 – AravindRaj 2012-08-12 14:49:42

相關問題