嘿我的问题是为HABTM模型定义一个条件
(int) 0 => array(
'Article' => array(
'id' => '',
'title' => '',
'body' => '',
'created' => null,
'modified' => null
),
'Channel' => array(
'id' => '',
'channelname' => '',
'created' => null,
'modified' => null
),
'Tag' => array(
(int) 0 => array(
'id' => '1',
'value' => 'example',
),
(int) 1 => array(
[maximum depth reached]
),
(int) 2 => array(
[maximum depth reached]
)
),
),
我想定义一个条件,在Tag值中搜索特定的值......就像那样:
$this -> Article -> find('all', array('conditions' => array('Tag.0.value' => 'test'))
那么有人知道如何在这种情况下“预测”该阵列吗?谢谢(:
答案 0 :(得分:0)
您需要:
从另一个方向运行您的查找(使用CakePHP非常好的可包含行为来获取文章):
$ this-> Tag-> find(' all',array( '条件' =>阵列( ' Tag.value' => '测试' ) '含有' =>阵列( '文章' ) ));
或者,使用JOIN。像你一样运行你的发现,但是对标签值=' test'
您无法根据相关模型的条件限制主要模型的结果。原因是,当你依赖递归或使用Contain时,CakePHP实际上会创建单独的查询来引入你的不同模型。数据。因此,一个查询中的条件不会影响另一个查询。
查看类似的问题/答案:
How do I restrict query results based on sub-results in CakePHP?
Conditions in JOINed tables shows error CakePHP
cakephp contain filtering by parent model value