我正在尝试关联Laravel 5.x项目中的两个表。一个是Banners表,另一个是Services表。我不知道该用哪个Eloquent关系。
在我的主页旋转木马滑块上,每个横幅都应该代表服务表中的一条记录。我从Services表中唯一需要的是与服务相关的"slug"列的值。
我想我可以通过在Banner模型上使用指向service模型的"id"列的"service_id"列来关联两个表。然后使用该关系从服务模型中检索"slug"值。
起初我在Banner模型上尝试了这个:
public function services() {
return $this->hasMany('AppService');
}
并使用检索值
$slide->services->slug
但这并没有奏效。然后我尝试使用"belongsTo"方法而不是"hasMany"。它也不起作用。
我不知道哪一种关系很有说服力,也不知道如何使用它。我对所有的建议都持开放态度。
我解决了这个问题,不使用Eloquent关系,而是在查询生成器中使用了一个普通的Join语句。
$banners = DB::table('banners')
->join('services', 'banners.service_id', '=', 'services.id')
->select('banners.*', 'services.slug')
->get();