Я создаю проект в Laravel, в котором у каждой компании есть много отделов ... у каждого отдела есть определенное количество Местоположений, и у каждого Местоположения есть назначенные устройства!
Возможно, что разные компании используют Платформа Я создал глобальную область видимости, которая в основном фильтрует результаты по company_id
:
class CompanyScope implements Scope
{
/**
* Apply the scope to a given Eloquent query builder.
*
* @param \Illuminate\Database\Eloquent\Builder $builder
* @param \Illuminate\Database\Eloquent\Model $model
* @return void
*/
public function apply(Builder $builder, Model $model)
{
return $builder->where('company_id', auth()->user()->company_id);
}
}
Все хорошо с этим, и он фильтруется должным образом, пока я не пытаюсь достичь следующего:
Departments::withCount(['locations','devices'])->get();
В этот момент я получаю сообщение об ошибке, в котором говорится, что столбец company_id
является неоднозначным. Это происходит потому, что у всех таблиц departments
, location
и devices
есть столбец company_id
и последний запрос. при использовании области не указывается имя таблицы.
Есть ли способ добавить имя таблицы в условие области?