我正在使用Laravel并且在Eloquent ORM中遇到一个小问题.我可以使用JOIN简单地使用SQL查询,但我似乎无法使用Eloquent进行操作!
这就是我想要的,我有两个表格.一个是'餐馆',另一个是'Restaurant_Facilities'.
表很简单..和一对一的关系.像有一个restaurant带桌子id,name,slug,等,并叫另一台restaurant_facilities用id,restaurant_id,wifi,parking,等
现在我想做的是..加载所有有wifi = 1或wifi = 0的餐馆..我怎么能用Eloquent做到这一点?我尝试过急切加载,数据透视表,(),集合(),似乎什么都没有用!
对于多对多关系我也有同样的问题cuisines!我有restaurant同桌,cuisine桌子和restaurant_cuisine_connection桌子..
但是如何使用它的ID加载特定菜肴中的所有餐馆?
这有效.
Cuisine::find(6)->restaurants()->get();
但我想从Restaurant :: model而不是菜肴中加载它...因为我有很多条件链接在一起..它用于搜索和过滤/浏览页面.
任何想法或方法?我一直在努力奋斗3天,仍然没有答案.
示例型号:
class Restaurant extends Eloquent {
protected $table = 'restaurants';
public function facilities() {
return $this->hasOne('Facilities');
}
}
class Facilities extends Eloquent {
protected $table = 'restaurants_facilities';
public function restaurant() {
return $this->belongsTo('Restaurant');
}
}
Run Code Online (Sandbox Code Playgroud)
PS:这似乎有效..但这不是Eloquent的方式吗?
Restaurant::leftJoin( …Run Code Online (Sandbox Code Playgroud)