Cakephp 2包含不能正确过滤

时间:2012-06-25 14:41:53

标签: cakephp-2.0 containable

我不确定我是做了什么坏事,或者这实际上是Cake的预期行为。

以下是我的代码:

$tickets = $this->TicketsPrice->Ticket->find('all',array(
    'contain'=> array(                    
        'TicketsType' => array(
                    'conditions' => array(
                        'provider_id' => $provider_id,
                    ),
                ),
            ),
        )
    );

这就是我得到的:

Array
(
    [0] => Array
        (
            [Ticket] => Array
                (
                    [id] => 17
                    [name] => Telecabina
                    [tickets_type_id] => 9
                )

            [TicketsType] => Array
                (
                    [id] => 9
                    [provider_id] => 5
                    [name] => Name
                )

        )

    [1] => Array
        (
            [Ticket] => Array
                (
                    [id] => 16
                    [name] => Pase General
                    [tickets_type_id] => 8
                )

            [TicketsType] => Array
                (
                    [id] => 8
                    [provider_id] => 5
                    [name] => Name
                )

        )


    [4] => Array
        (
            [Ticket] => Array
                (
                    [id] => 13
                    [name] => Pase fin de semana
                    [tickets_type_id] => 7
                )

            [TicketsType] => Array
                (
                    [id] => 
                    [provider_id] => 
                    [name] => 
                )

        )

我不应该在阵列中获得票证4。相反,由于provider_id不匹配,我得到一个空的TicketsType数组。这是预期的结果吗?

1 个答案:

答案 0 :(得分:0)

我意识到条件实际上是过滤好了,但我不确定如何对整个数组实现相同的过滤器,而不仅仅是对包含模型的子数组。

我可以通过执行foreach并检查空ID来实现,但不确定如何直接在find函数中创建它,就像在SQL where条件下执行它一样。