0

我不确定我是否在做坏事,或者这实际上是 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 数组。这是预期的结果吗?

4

1 回答 1

0

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

我可以通过执行 foreach 并检查空 id 来做到这一点,但不确定如何直接在 find 函数中创建它,就像使用 where SQL 条件一样。

于 2012-06-25T15:19:25.487 回答