Laravel Model Override Где пункт? - PullRequest
0 голосов
/ 14 ноября 2018

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

Laravel Query Builder

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

Model Query Builder

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

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

1 Ответ

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

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

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

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

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

...