如何使用顺序关系

时间:2014-05-19 08:31:12

标签: activerecord yii

在我的应用程序中,我有3个表:statecitydistrict,每个州都有许多城市,每个城市都包含多个区域。我已经在statecity模型中定义了这些关系。

现在,我需要检索所有statecitydistrict的列表,以反映这些关系的多维数组。一个例子如下:

[
    'A state' => [
        ['AA city' => ['AA1 district', 'AA2 district']],
        ['AB city'] => ['AB1 district']
    ]
]

是否可以使用Model利用我定义的关系来有效地完成工作?

1 个答案:

答案 0 :(得分:1)

是的,你可以。

您可以使用以下关系获取数据:

$states = State::model()->with('cities.districts')->findAll();

State应该在哪里说明模型名称。 citiesState中关系数组中定义的关系的名称。 districtsCity中的relations数组中定义的关系的名称。

您可以使用简单的->

遍历州并访问de city和district
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
    }
}