如果已指定连接,如何显示具有以下连接的Laravel模型?
我有这个产品型号:如果已指定连接,如何显示具有以下连接的Laravel模型?,laravel,eloquent,laravel-5.7,Laravel,Eloquent,Laravel 5.7,我有这个产品型号: public function categories() { return $this->belongsToMany('App\Category', 'product_categories'); } 在我的控制器中: public function search(Request $request) { return Product::with([ 'categories' => function($categories) use
public function categories() {
return $this->belongsToMany('App\Category', 'product_categories');
}
在我的控制器中:
public function search(Request $request) {
return Product::with([
'categories' => function($categories) use ($request) {
// ...
}
]);
}
如果我尝试在categories
功能中使用$request
,它只在类别中搜索,但会显示所有产品
如何仅显示在
$request->category\u id
中定义了类别的产品?您可以通过以下方式进行搜索:
public function search(Request $request) {
return Product::with('categories')
->whereHas('categories', function ($q) use (request) {
$q->where('id', $request->category_id);
});
}
您可以使用laravel中的
whereHas
关键字:
public function search(Request $request) {
return Product::with('categories')
->whereHas('categories', function ($query) use ($request){
$query->where('category_id', $request->category_id);
})->get();
}
这是你的电话号码