Как показать модель Laravel с подключением ownToMany, если указала соединение? - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть модель этого продукта:

public function categories() {
    return $this->belongsToMany('App\Category', 'product_categories');
}

И в моем контроллере:

public function search(Request $request) {
    return Product::with([
        'categories' => function($categories) use ($request) {
            // ...
        }
    ]);
}

Если я попытаюсь использовать $request в функции categories, он будет искать только по категориям, но покажет все продукты.

Как показать только , что продукты, для которых определены категории $request->category_id?

Ответы [ 2 ]

0 голосов
/ 03 ноября 2018

вы можете использовать ключевое слово whereHas в laravel:

public function search(Request $request) {
    return  Product::with('categories')
      ->whereHas('categories', function ($query) use ($request){
        $query->where('category_id', $request->category_id);
    })->get();
}

Вот документы

0 голосов
/ 03 ноября 2018

Вы можете искать его следующим образом:

public function search(Request $request) {
    return Product::with('categories')
            ->whereHas('categories', function ($q) use (request) {
                $q->where('id', $request->category_id);
            });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...