我不确定我是做了什么坏事,或者这实际上是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数组。这是预期的结果吗?
答案 0 :(得分:0)
我意识到条件实际上是过滤好了,但我不确定如何对整个数组实现相同的过滤器,而不仅仅是对包含模型的子数组。
我可以通过执行foreach并检查空ID来实现,但不确定如何直接在find函数中创建它,就像在SQL where条件下执行它一样。