Я зарегистрировал Gate, который должен принимать массив целых чисел. Его функция - возвращать true , если в этом переданном массиве идентификатор роли пользователя . Код выглядит так:
Gate::define('access', function ($user, $access_type) {
Log::info('-----------------------------------');
Log::info($access_type);
Log::info(gettype($access_type));
Log::info('-----------------------------------');
return in_array($user->roleid,$access_type);
});
И в моем шаблоне я поместил это ограничение следующим образом:
@can('access',[2,4])
... html code here ...
@endcan
Теперь я получаю эту ошибку на странице:
Я просмотрел журналы, чтобы проверить значение и тип переменной $ access_type , и похоже, что он получает только значение 2 .. Значение 4 отсутствует.
Похоже, мне нужно добавить еще одну переменную в анонимную функцию, чтобы получить значение 4. Вот так:
Gate::define('access', function ($user, $access_type1, $access_type2){
... some code ...
})
Когда я добавил новую переменную $ access_type2 и посмотрел журналы, я смог увидеть значение 4.
Теперь моя проблема заключается в следующем:
- Я не могу вручную добавить переменные в анонимную функцию, потому что передаваемые значения отличаются по номерам. Может принимать 1 значение, 2 значения, 3 значения и т. Д. c. Как можно получить значения в формате массива?