laravel哪里没有关系

baz*_*azi 4 laravel eloquent

我如何查询关系,仍然包括没有关系的模型?有两种型号

  • 商店

  • 产品

// Store
public function products() {
   $this->belongsToMany('App\Store');
}

// Product
public function stores() {
   $this->belongsToMany('App\Product');
}
Run Code Online (Sandbox Code Playgroud)

和一个用于连接它们的数据透视表product_store.有些商店没有任何产品.我如何查询所有产品,甚至是那些不属于任何商店的产品,例如:

Product::where('store.id', '=', 1)->get()

这就是我目前的做法.

Product::whereHas('stores', function($query) {
    $query->where('id', '=', $store_id);
});
Run Code Online (Sandbox Code Playgroud)

但随着laravel文档提到这个

检索至少有一个商店的所有产品

小智 8

Product::doesntHave('stores')->orWhereHas('stores', function($query) {
    $query->where('id', '=', $store_id);
})->get();
Run Code Online (Sandbox Code Playgroud)