如何从 Laravel 5 中的多个表中获取特定列?

How to fetch specific columns from multiple tables in Laravel 5?

我有 3 张桌子,

  1. 国家: ID, 名字

  2. 省份: ID, 姓名, country_id

  3. 城市: ID, 姓名, province_id

我在模型中定义了如下关系,

国家模式:

    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 中的这些表中获取城市名称、省名称、国家名称的结果。你能帮我吗?

尝试只使用 as:

->select('cities.name as city_name', 'provinces.name as province_name', 'countries.name as country_name')

你会试试这个吗:

$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']);

希望对你有帮助!

好的,这将是一个具体的答案 了解 laravel 中的房地产并查看这些

class example1 extends Model
    {
      public function examplefunction() {
        return $this->hasMany('App\othermodel', 'id');
    }
}

然后使用此查询

$abc=example1::with('examplefunction')->get();

你去看看 laravel 关系,使用这个你可以获得组合结果

 $products = User::select('id', 'email', 'first_name', 'last_name','country_code','mobile')->get()->toArray();
       $gaurang = Ticket_Thread::select('body','title','resolv_note')