Странное поведение с globalScope и ресурсами
)
Я использую глобальную область действия для модели, чтобы уменьшить количество результатов на основе ролей и разрешений. Когда я делаю это, система идентифицирует 2 элемента модели как "допустимые", но постраничный ответ дает только 1. Я использую ресурсы для ответа (приложение имеет 100% API), и оказывается, что ресурс для этой модели ударил только один раз, а не 2 (потому что я получил 2 предмета, чтобы вернуться).
Модель (называется "unit.php")
protected static function boot()
{
parent::boot();
static::addGlobalScope('limitUnits', function (Builder $builder) {
$builder->whereIn('u_id', auth()->user()->getValidUnitIds());
});
}
getValidUnitIds
возвращает массив с 0 => 2, 1 => 3
содержащий id 2 и 3 (что правильно).
Я поместил в журнал сообщение в моем "UnitResource", но это сообщение вызывается только один раз для идентификатора 2, а не для идентификатора 3.
Я даже зарегистрировал все запросы, и оказалось, что система запрашивает идентификаторы 2 и 3 (как и должно быть), но затем запускается только один раз через ресурс, отображая только 1 элемент, который будет выведен пагинатором.
Код страницы
return new $this->resourceCollection(
$result->paginate(
$request->get('pageSize', config('api.defaultPageSize')),
$this->select,
'-',
$request->get('pageNum', 1)
)->appends([
'pageNum' => $request->get('pageNum', 1),
'pageSize' => $request->get('pageSize', config('api.defaultPageSize')),
])
);
Любая помощь?