我有一个mail_conversation
和一个mail_conversation_member
表。
mail_conversation
仅id
作为PRIMARY KEY
。
mail_conversation_member
有conversation_id
和user_id
为PRIMARY KEY
s。
现在,我想列出一个会话及其所有成员,但它只返回一个成员。我似乎需要在PRIMARY KEY
关系中添加第二个HAS_MANY
。
'message_member' => array(self::HAS_MANY, 'MailConversationMember', 'conversation_id')
我得到的对话是:
$criteria = new CDbCriteria();
$criteria->condition = "message_member.user_id = " . Yii::app()->user->id;
$criteria->order = 'messages.date_created DESC';
$mail_conversations = MailConversation::model()->with(array('message_member', 'messages'))->findAll($criteria);
答案 0 :(得分:0)
这是因为你有标准。如果从with
数组中取出“message_member”,则一旦进行了对话,就可以延迟加载成员。您应该检查Yii正在生成的SQL代码,以确认标准是按预期解释的。
此外,为什么不在成员类中定义关系:
'conversations' => array(self::HAS_MANY, 'MailConversationMember', 'user_id',array(
'order' => 'messages.date_created DESC',
),
然后,您可以在没有指定条件的情况下完成对话,并在每次对话中拉出成员。