在我的应用程序中,我有3个表:state
,city
,district
,每个州都有许多城市,每个城市都包含多个区域。我已经在state
和city
模型中定义了这些关系。
现在,我需要检索所有state
,city
和district
的列表,以反映这些关系的多维数组。一个例子如下:
[
'A state' => [
['AA city' => ['AA1 district', 'AA2 district']],
['AB city'] => ['AB1 district']
]
]
是否可以使用Model
利用我定义的关系来有效地完成工作?
答案 0 :(得分:1)
是的,你可以。
您可以使用以下关系获取数据:
$states = State::model()->with('cities.districts')->findAll();
State
应该在哪里说明模型名称。 cities
是State
中关系数组中定义的关系的名称。 districts
是City
中的relations数组中定义的关系的名称。
您可以使用简单的->
foreach($states as $state) {
var_dump($state->cities); // will probably be an array of cities
foreach($state->cities as $city) {
var_dump($city->districts); // will probably be an array of districts
}
}