0

我有mail_conversation一张mail_conversation_member桌子。

mail_conversationid作为PRIMARY KEY.

mail_conversation_memberconversation_iduser_id作为PRIMARY KEYs。

现在,我想列出一个对话及其所有成员,但它只返回一个成员。看来我需要PRIMARY KEYHAS_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);
4

1 回答 1

0

这是因为您拥有的标准。如果您将“message_member”从with数组中取出,您可以在进行对话后延迟加载成员。您应该检查 Yii 生成的 SQL 代码,以确认标准被按预期解释。

另外,为什么不在成员类中定义关系:

'conversations' => array(self::HAS_MANY, 'MailConversationMember', 'user_id',array(
     'order' => 'messages.date_created DESC',
),

然后,您可以在没有指定标准的情况下进行对话,并在每次对话中拉动成员。

于 2012-10-11T03:43:33.270 回答