我正在使用CakePHP 2.0和MySQL。我有以下表格:
Stores
-id
-name
-suburb_id
Outlets
-id
-name
-suburb_id
Suburbs
-id
-name
-state_id
States
-id
-code
-name
各州有很多郊区和郊区都有很多商店。当我执行以下查找时:
$this->Outlet->recursive = 0;
$stores = $this->Store->find("all", array('limit' => 50));
它检索Outlet,Suburb,Store和State数据数组。
[Outlet] => Array
(
[id] => 3
[name] => SMOKEYS KEBABS PIZZA /PIDE
[suburb_id] => 1212
)
[Suburb] => Array
(
[id] => 1212
[state_id] => 1
[name] => Wiangaree
[State] => Array
(
[id] => 1
[code] => ACT
[name] => Australian Capital Territory
)
[Store] => Array
(
[0] => Array
(
[id] => 12814
[name] => Wiangaree General Store
[suburb_id] => 1212
)
)
)
无论如何都要控制它检索的内容?基本上,我想要奥特莱斯,相关的郊区数据和相关的州数据。
或者我错误地解决了这个问题?我想到的另一个选项是实现ad hoc连接。
答案 0 :(得分:4)
在处理相关模型时,请说modelA
和modelB
,如果要将find()
与modelA
一起使用,则应设置recursive
属性该模型,而不是modelB
。
因此,在您的代码中,您应该像这样设置:
$this->Store->recursive = 0;
$stores = $this->Store->find("all", array('limit' => 50));
您还可以使用find()
或{{1}}方法的Containable
behavior更多地控制检索内容。