Странное поведение с 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')),
        ])
    );

Любая помощь?

0 ответов

Другие вопросы по тегам