1

私は3つのテーブルを持っています、

  1. 国: ID、名前

  2. 州: ID、名前、country_id

  3. 都市: id、名前、province_id

Model でリレーションシップを次のように定義しました。

国モデル:

    public function Provinces()
        {
            return $this->hasMany('App\Province');
        }

州モデル:

        public function Country()
        {
            return $this->belongsTo('App\Country');
        }

        public function Cities()
        {
            return $this->hasMany('App\City');
        }

都市モデル:

    public function Province()
        {
            return $this->belongsTo('App\Province');
        }

以下のクエリを使用していますが、すべてのデータを国名で上書きします。

    $city = DB::table('cities')
        ->join('provinces', 'cities.province_id', '=', 'provinces.id')
        ->join('countries', 'provinces.country_id', '=', 'countries.id')
        ->select('cities.name','provinces.name','countries.name')
        ->get();

laravel 5のこれらのテーブルから都市名、州名、国名のみの結果を取得したいのですが、それを手伝ってもらえますか?

4

4 に答える 4

3

使ってみてくださいas

->select('cities.name as city_name', 'provinces.name as province_name', 'countries.name as country_name')
于 2016-06-18T20:24:57.483 に答える
0

これで試してみませんか:

$city = DB::table('cities')
    ->join('provinces', 'cities.province_id', '=', 'provinces.id')
    ->join('countries', 'provinces.country_id', '=', 'countries.id')
    ->get(['cities.name', 'provinces.name', 'countries.name']);

お役に立てば幸いです。

于 2016-06-18T20:36:00.500 に答える