2012-05-01 37 views
0

我試圖用下面的查詢查詢國家表來打印具有相應城市的所有國家。現在,我得到了每個城市的重複國家對象,而不是所有城市都有一個國家對象。kohana orm加入重複的對象結果

$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

回答

0

如果你正在使用MySQL,只需要在城市的名稱,你可以使用PHP的爆炸使用GROUP_CONCAT功能,然後將其轉換爲陣列。

$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; 
    } 
} 
+0

感謝提示 – Abbas