如何在 Laravel 5 中将以下查询转换为 eloquent 模型?
$city = DB::table('cities')
->join('provinces', 'cities.province_id', '=', 'provinces.id')
->join('countries', 'provinces.country_id', '=', 'countries.id')
->select('cities.name as City','provinces.name as Province','countries.name as Country')
->where('cities.isDelete', '=', '0')
->get();
我的表结构是:
国家: ID, 姓名
省份: ID, 姓名, 国家ID
城市: ID, 姓名, Province_id
我已经完成了带有 2 个表的 Eloquent 模型的工作,但我不知道如何管理 3 个表。 附:我已经在模型中正确定义了我的关系。
最佳答案
尝试这些代码。欲了解更多信息,请参阅https://laravel.com/docs/5.2/eloquent-relationships
//Create this method in city model
public function province()
{
return $this->belongsToMany('App\Province');
}
//Create this method in province model
public function country()
{
return $this->belongsTo('App\Country');
}
现在尝试此查询
$city = DB::table('cities')->with('province','province.country')
->where('cities.isDelete', '=', '0')
->get();
结果数据将采用嵌套形式
like cities
-province
->country
关于mysql - 从查询构建器转换为具有 3 个表的 Eloquent 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37906639/