Недавно я начал использовать laravel 5.3 для написания блога, но у меня возник вопрос после запуска php artisan make:auth
когда я запустил это, он сгенерирует маршруты в моем web.php
это код в нем:
Auth::routes();
Route::get('/home', 'HomeController@index');
Тогда я бегу php artisan route:list
, нахожу множество действий, например LoginController @ login ...
Но я не нашел этих действий в своем App\Http\Controllers\Auth
, где это?
А также что такое Auth::routes()
подставка, я не могу найти маршруты про Auth.
Мне нужна помощь, спасибо, что ответили на мой вопрос
php
laravel
laravel-5
laravel-5.3
g1eny0ung
источник
источник
Ответы:
Auth::routes()
- это просто вспомогательный класс, который помогает вам создавать все маршруты, необходимые для аутентификации пользователя. Вместо этого вы можете просмотреть код здесь https://github.com/laravel/framework/blob/5.3/src/Illuminate/Routing/Router.php .Вот маршруты
источник
Auth
является фасадом и будет определенconfig/app.php
в этом файле конфигурации. Вы найдете класс, который действует как его поставщик.NotFoundHttpException in RouteCollection.php line 161:
появляется ошибка:, и другой api работает нормально.$this->get('login', 'Auth\LoginController@showLoginForm')->name('login');
не может запуститьAuth
apiВот Laravel 5.7 , Laravel 5.8 , Laravel 6.0 и Laravel 7.0 (обратите внимание на незначительное изменение bc в 6.0 для маршрута проверки электронной почты).
Вы можете проверить эти маршруты здесь:
источник
'email/verify/{id}/{hash}'
. В противном случае хэш не может быть проверен, и будет выдана ошибка 403 с надписью «Это действие неавторизовано».Auth routes для Laravel 5.3 вместо Auth :: routes (). Я надеюсь, что это помогает...
Поэтому, если вы измените некоторые названия этих маршрутов, не забудьте также изменить в представлениях действия постов!
источник
Для Laravel 5.5.x
источник
порядок вызова функции:
это такой маршрут:
источник
Auth::routes()
- Фасад Auth - извлекаетRouter
экземпляр объекта из контейнера Laravel и вызывает его ранее существовавший методauth
.auth
в свою очередь определяет маршруты и соответствующие им контроллеры, которые были созданыphp artisan make:auth
. Это оно.Это сработало для меня с Laravel 5.6 .
В файле
web.php
просто замените:По:
И удалите ссылку Зарегистрироваться в двух файлах ниже:
источник
Если вы ищете эти же маршруты для версии laravel 7, вы найдете их здесь
Vendor/laravel/ui/src/AuthRouteMethods.php
источник
Я удивлен, что никто не упомянул команду
php artisan route:list
, которая дает список всех зарегистрированных маршрутов приложений (включаяAuth::routes()
иPassport::routes()
если они зарегистрированы)источник
класс loginuser использует черту под названием
AuthenticatesUsers
если вы откроете эту черту, вы увидите функции (это относится к другим контроллерам)
Illuminate\Foundation\Auth\AuthenticatesUsers;
вот код признака https://github.com/laravel/framework/blob/5.1/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php
извините за плохой формат, я использую свой телефон
также
Auth::routes()
он просто вызывает функцию, которая возвращает маршруты аутентификации, которые это (я думаю)источник
vendor\laravel\src\Illuminate\Foundation\Auth\ResetsPasswords
, если вы хотите изменить это или что-то еще, не меняйте это, просто добавьте тот же метод в контроллер ur, а затем измените его,