Когда я реализовал это (https://mattstauffer.co/blog/acl-access-control-list-authorization-in-laravel-5-1) Laravel разрешение 5,1 учебник, я нашел использование этогоLaravel 5,1 Призыв к неопределенным метод Illuminate Auth Access Gate :: позволяют()
if (Gate::allows('create-contact')) {
redirect('hooray');
}
И тогда структура показывает мне эту ошибку
Call to undefined method Illuminate\Auth\Access\Gate::allow()
Все в порядке с зависимостями, так что это не проблема, то я обнаружил, что Laravel начал реализовывать этот метод начиная с версии 5.1.11 в этой теме на Laravel-х Документы для авторизации on (laraveldocs/5.1/authorization) Так, команда laravel говорит на своей странице документации, что эта функция авторизации доступна с версии 5.1.11.
Я получал ту же ошибку, поэтому я пошел в репозиторий laravel/framework на github (github/laravel/framework /) и проверил с версии 5.1.11 по 5.1.31 и обнаружил, что метода не существует в исходном коде.
Этот метод ворот доступен, начиная с версии 5.2
Вы можете проверить оба здесь v5.1 (GitHub/Laravel/рамки/BLOB/v5.1.31/SRC/Осветите/Контракты/Auth/Access/Gate.php) и для v5.2 (github/laravel/framework/blob/v5.2.0/src/Illuminate/Contracts/Auth/Access/Gate.php)
Поэтому я хотел поделиться с вами этими знаниями, но если вы найдете решение, не обновляя версию фреймворка, я был бы рад узнать.
Спасибо!
Это всего лишь идея (я не говорю, что вы должны это делать), но если вы действительно не можете обновить всю фреймворк до 5.2, можете ли вы просто потянуть в пакет 5.2, который вам нужен, а именно: Освещает \ Auth' https://packagist.org/packages/illuminate/auth#v5.2.0? – haakym