Как проверить, содержит ли таблица несколько записей с разными значениями - PullRequest
0 голосов
/ 05 июня 2018

У меня есть список товаров и список сайтов.На каждом веб-сайте может быть много продуктов, и каждый продукт может быть на многих веб-сайтах.

Я хочу найти каждый отдельный продукт на определенном веб-сайте, которого нет на другом веб-сайте, по сути, уникальный для этого веб-сайта.

Единственное решение, которое я могу придумать, - это итерация по каждому продукту, а затем итерация по каждому из его сайтов, чтобы проверить, имеют ли они правильный URL.

Это работает, но я чувствую, что будетлучший способ сделать это.У кого-нибудь есть идеи?

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Если вы хотите загружать продукты, которые являются уникальными для веб-сайта, с веб-сайтом, вы можете сделать что-то вроде:

Website::with(['products' => function ($query) {
    $query->has('websites', 1);
}])->find($id);

В противном случае, если вы уже загрузили вас $website, вы можете сделатьчто-то вроде:

$uniqueProducts = $website->products()->has('websites', 1)->get();

Eloquent - имеет метод ()

Ограничение активных нагрузок

0 голосов
/ 05 июня 2018

Если вы используете отношения Eloquent, вы можете решить свою проблему следующим образом:

$posts = App\Product::has('websites', '=', 1)->get();

см .: https://laravel.com/docs/5.6/eloquent-relationships#querying-relationship-existence

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...