Выберите записи, которые не имеют определенного значения, как ребенок - PullRequest
0 голосов
/ 11 июня 2018

enter image description here

Я хочу, чтобы пользователи фильтровали по категориям, поэтому я отправляю category_id в качестве параметра и должен выбрать пользователей, у которых нет записей вТаблица users_categories_restrictions с этим category_id.

Как мне сделать этот красноречивый запрос ??

1 Ответ

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

Вы можете использовать whereDoesntHave

$users = App\User::whereDoesntHave('categories', function ($query) use($cat_id) {
    $query->where('categories.id', '=', $cat_id);
})->get();

Я предполагаю, что вы определили отношение "многие ко многим" между моделью пользователя и категорией

class User extends Model
{
    public function categories()
    {
        return $this->belongsToMany(Category::class, 'users_categories_restrictions', 'user_id');
    }
}


class Category extends Model
{
    public function users()
    {
        return $this->belongsToMany(User::class, 'users_categories_restrictions', 'category_id');
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...