2012-08-12 85 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

相关问题