题
我有一个模型(清单),它拥有并属于几个不同的模型,我想找到所有这个模型,它的相关模型(Openhouses)有条件。 “拥有并属于”是在模型文件中设置的。清单上的开放式房屋和开放式房屋属于清单。 (对于我想要数据的其他一些模型,列表有很多和很多。)
我一直在努力。
$this->Listing->find('all',
array('conditions' =>
array('Openhouse.date >' => $openhouse_start->format('Y-m-d H:i:s'),
'Openhouse.date <' => $openhouse_end->format('Y-m-d H:i:s'))
));
但无济于事。
Error: 1054: Unknown column 'Openhouse.date' in 'where clause
我知道我可以在Openhouse模型上搜索并获取相关的列表但是然后以不同的格式返回数据,我需要将递归方式向上移动以从其他模型获取数据。 (最后我得到了重复的openhouse数据!)。如果需要,我可以发布更多代码示例。
我的问题基本上是我需要查询openhouse模型并使用它,还是我在相关模型上放置条件的语法不正确?
解决方案
试试这个:
$this->List->find('all', array(
'contain' => array(
'Openhouse.conditions' => array(
'Openhouse.date >' => $openhouse_start->format('Y-m-d H:i:s'),
'Openhouse.date <' => $openhouse_end->format('Y-m-d H:i:s'))
)
)
)
其他提示
如果你有很多链接模型,递归到2的设置可能会带来比你想要的更多的数据。
如果这是真的,有一种替代mavarro所说的,你也可以尝试使用包含行为:
$this->Listing->find
(
'all',
array
(
'conditions' => array
(
'Openhouse.date >' => $openhouse_start->format('Y-m-d H:i:s'),
'Openhouse.date <' => $openhouse_end->format('Y-m-d H:i:s')
),
'contain' => array('Openhouse')
)
);
尝试添加
$ this-&gt; listing-&gt; recursive = 2;
在通话之前找到所有。 应在调用之前链接表,使您可以从Listing模型访问Openhouse模型。
$this->List->find('all', array(
'contain' => array(
'conditions' => array(
'Openhouse.date >' => $openhouse_start->format('Y-m-d H:i:s'),
'Openhouse.date <' => $openhouse_end->format('Y-m-d H:i:s')
),
'order' => array('Openhouse.date DESC')
)
)
)
不隶属于 StackOverflow