Laravel Model Override Где пункт?

Я работаю над существующим приложением laravel У меня много запросов, все запросы написаны в построителе запросов laravel, теперь я хочу добавить еще один оператор where site_id (столбец), чтобы отфильтровать записи по всему приложению. Я не хочу переписывать каждый запрос, я просто хочу общий способ избавиться от этой проблемы. Мои запросы приложений написаны таким образом.

Laravel Query Builder

DB::table('users')->where('id', $user_id)->get()

Модель Query Builder

AccountTag::join('ad as a', 'a.id', '=', 'abs.account_id')
->select('AccountTag.*', 'a.company_name')
->where(array("account_id" => 'xx'))
->get()
->toArray();

Можем ли мы иметь какой-либо переопределенный метод, который мы помещаем в базовый класс и добавляем этот фильтр для получения необходимых данных?

0

Решение

Как насчет глобальных или локальных областей?

https://laravel.com/docs/5.7/eloquent#global-scopes

смотреть на Применение глобальных областей Вы можете указать конкретным моделям использовать глобальную область видимости.

Вы можете указать конкретные запросы, чтобы исключить область, см. Удаление глобальных областей

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]