2014-09-19 72 views
0

嘿我的问题是定义一个条件的HABTM模型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] 
     ) 
    ), 
), 

我想定义搜索特定值的变量值的条件..这样的:

$this -> Article -> find('all', array('conditions' => array('Tag.0.value' => 'test')) 

那么有人知道如何在这种情况下“foreach”该数组吗?谢谢(:

回答

0

你要么需要:

  1. 从另一个方向运行您的发现(使用CakePHPs真棒中可容纳的行为来获取文章):

    $这个 - >标签 - >找到( '所有',阵列( '条件'=>数组( 'Tag.value'=> '测试' ) '包含'=>数组( '第' ) ));

  2. 或者,使用JOIN。运行您发现像你这样做,但做一个INNER上的标签在标签值=“测试”

基于相关联的模型的状况下,你不能限制主要型号的结果JOIN。原因是,当您依赖递归或使用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

cakephp contain association conditions issue

Adding conditions to Containable in CakePHP

+0

如果使用'contains',请不要忘记添加'Containable'行为。 – 2014-09-19 21:09:34

+0

@FazalRasel - 已经包含在答案中:“使用CakePHP真棒包容行为来获取文章” – Dave 2014-09-19 23:46:36