我有一个模型(清单),它拥有并属于几个不同的模型,我想找到所有这个模型,它的相关模型(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')
                      )
                             )
)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top