kohana orm加入重复对象的结果

时间:2012-05-01 02:08:29

标签: orm kohana-3

我正在尝试使用以下查询查询国家/地区表格,以打印具有相应城市的所有国家/地区。现在我为每个城市获得了一个重复的国家/地区对象,而不是所有城市都有一个国家/地区对象。

$all = ORM::factory('country')->select('cities.*')->join('cities','LEFT')->on('country.id', '=', 'country_id' )->find-all();

foreach ($all as $country) {
    echo $caountry->name;
    foreach($country->cities as $city ){
        echo $city->name;
    }
}

感谢您的帮助, AA

1 个答案:

答案 0 :(得分:0)

如果您使用的是MySQL并且只需要城市的名称,您可以使用GROUP_CONCAT函数,然后使用PHP的爆炸将其转换为数组。

    $all = ORM::factory('country')
    ->select('country.name',DB::epxr('GROUP_CONCAT(cities.name) AS cities'))
    ->join('cities','LEFT')
    ->on('country.id', '=', 'country_id' )
    ->group_by("country.id")
    ->find-all();

foreach ($all as $country) {
    echo $country->name;
    foreach(explode(",",$country->cities) as $city ){
        echo $city;
    }
}