如何关联Laravel 5.x项目上的Banners和Services表



我正在尝试关联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();

最新更新