想要使用不同表格的Id从不同模型中获取数据?
问题描述:
我有两个表消息和用户含有字段的模型:想要使用不同表格的Id从不同模型中获取数据?
消息:ID消息CREATED_DATE状态
用户:ID usr_name
我有不使用模型的另一个表message_to:
message_to:id message_id user_id状态
现在,我的问题是我需要从usertab获取用户名通过当前消息模型中的message_to中的 user_id。我如何为此创建 关系?我不想在这里使用查询生成器。
答
在消息模型:
<?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) { ...
谢谢你,Evgeniy。我可以在'消息'模型中使用关系'用户'吗? – AravindRaj 2012-08-12 14:45:02
是的,这是消息模型的关系函数。我刚刚更新了使用示例的答案。 – 2012-08-12 14:46:08
非常好。谢谢Evgeniy Naydenov。 – AravindRaj 2012-08-12 14:49:42