小编Tha*_*san的帖子

Laravel,如何使用关系列的条件?

我正在使用Laravel并且在Eloquent ORM中遇到一个小问题.我可以使用JOIN简单地使用SQL查询,但我似乎无法使用Eloquent进行操作!

这就是我想要的,我有两个表格.一个是'餐馆',另一个是'Restaurant_Facilities'.

表很简单..和一对一的关系.像有一个restaurant带桌子id,name,slug,等,并叫另一台restaurant_facilitiesid,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)

php laravel eloquent

33
推荐指数
4
解决办法
6万
查看次数

标签 统计

eloquent ×1

laravel ×1

php ×1