如果已指定连接,如何显示具有 belongsToMany 连接的 Laravel 模型?
How to show Laravel model with belongsToMany connection if has specified connection?
我有这个产品型号:
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_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();
}
这是docs
我有这个产品型号:
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_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();
}
这是docs