0

以下のクエリで国のテーブルをクエリして、すべての国と対応する都市を出力しようとしています。現在、すべての都市に対して 1 つの国オブジェクトを使用するのではなく、都市ごとに重複した国オブジェクトを取得しています。

$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

4

1 に答える 1

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;
    }
}
于 2012-05-01T14:49:33.030 に答える