我不确定我是在做坏事,还是这实际上是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数组。这是预期的结果吗?
发布于 2012-06-25 23:19:25
我意识到条件实际上是过滤的,但我不确定如何对整个数组实现相同的过滤,而不仅仅是对所包含的模型的子数组。
我可以通过执行foreach并检查空id来做到这一点,但不确定如何直接在find函数中实现,就像使用where SQL条件一样。
https://stackoverflow.com/questions/11191499
复制相似问题