我的要求是:
$monits = $this->Monit->find('all', array('recursive'=>'0'));
结果是:
array(
(int) 0 => array(
'Monit' => array(
'id' => '1',
'nom' => 'mon'
'ecole_id' => '1'
),
'Ecole' => array(
'id' => '1',
'nom' => 'ecole name'
),
'Seance' => array(
(int) 0 => array(
'id' => '2',
'title' => 'ele name',
'monit_id' => '1'
),
(int) 1 => array(
'id' => '3',
'title' => 'ele name',
'monit_id' => '1'
)
)
)
)
我想只选择Monit和Ecole'并消除了#Seance'。我该怎么办?
答案 0 :(得分:0)
使用CakePHP's Containable Behavior。
在AppModel中设置public $recursive = -1;
也是一种很好的做法。对于所有模型,这将默认递归级别为-1
并且很好,因为自引入Containable以来,使用递归基本上被认为是不好的做法。
“recursive”是一个新颖的想法,在做博客等简单的应用程序时有一些优点,但它已经被放弃,甚至从Cake 3中删除只是因为它包含了多么棒的(并且易于使用)行为是。没有理由获得比实际需要更多的数据,递归就是这样做的。另一方面,可以包含您可以指定您想要的相关数据。