Как применить «wherePivot» для данных коллекций, а не для самих отношений? - PullRequest
0 голосов
/ 10 июля 2019

Давайте поговорим о примере.У меня есть магазины и продукты.Каждый продукт имеет свою цену в зависимости от магазина.Товары не имеют одинаковую цену для всех магазинов.

Я вернулся за просмотр blade.php, такие коллекции:

    $products = Shop::find($shop_id)->products; //list of products

Затем в режиме просмотра лезвий я хочу найти товарыс ценой более 50 $.Я использую wherePivot для $ product в блейде, но я получаю «Метод, где Pivot не существует».

И я думаю, что речь идет о «wherePivot», который должен применяться к отношениям, возвращаемым как:

    Shop::find($shop_id)->products(); // () at the end.this is relationship

Возвращает отношение, к которому я мог бы применить wherePivot.но я не хочу отношений, потому что я использую foreach для отображения продуктов.Поэтому я хочу "продукты", список, а не отношения.И мне нужно отфильтровать по столбцу сводки "цена" тоже.

Как я могу заставить "гдеPivot" работать со списком (коллекцией) в этом случае?не в отношениях, возвращенных в скобках.

1 Ответ

0 голосов
/ 10 июля 2019

добавить wherePivot() метод в методе отношений в Shop модели, как показано ниже.

return $this->belongsToMany('App\Product')->wherePivot('price', '>', 50);
...