首页 > 解决方案 > cake php 2中的嵌套模型关系

问题描述

我有一个社交媒体,比如在 cake php 2 上运行的项目。在此我有模型Message,MessageShare and MessageShareStatus

我已经定义了模型关系如下。

Message hasOne MessageShare

MessageShare hasOne MessageShareStatus

Message 与 MessageShareStatus 没有直接关系。

$options['conditions'] = ....
$options['contain'] = ['MessageShare','MessageShare.MessageShareStatus'];
$this->Message->MessageShare->hasOne['MessageShareStatus']['conditions']['user'] = 1;
$this->Message->recursive = 1;
$this->Message->MessageShare->recursive = 2;
$this->Message->find ( 'all', $options );

在执行上述操作时,查询独立执行,如

SELECT * FROM messages LEFT JOIN message_shares ON ...

SELECT * FROM message_share_statuses where user = 1 and ...

我想要如下查询。单个查询中的三个表。

SELECT * FROM messages LEFT JOIN message_shares ON .. LEFT JOIN message_share_statuses ON ....

我无法从 message_share_status 表中选择字段作为$options['fields'] = array('...','MessageShareStatus.msg_status');

尝试了不同的方法来修复,但没有成功。任何帮助表示赞赏。我是 cakephp 的新手

标签: phpcakephpmodelcakephp-2.0cakephp-model

解决方案


推荐阅读