Здравствуйте, я использую версию Laravel 5.2. Я установил проект laravel через композитора. После этого я использую команду «php artisan make: auth» для создания auth. После создания маршрута auth создается, например, «http://localhost:8000/login». Теперь я не хочу этого маршрута, я хочу установить другой маршрут, например «http://localhost:8000/super/admin». Так как я могу изменить "http://localhost:8000/login" - "http://localhost:8000/super/admin". И когда auth сгенерировал это время /register маршрут создается так, что маршрут я хочу удалить "http://localhost:8000/register" route. Пожалуйста, предложите мне, как это сделать. Спасибо заранее.Как изменить Laravel 5.2 изменить маршрут входа?
ответ
Следуйте этим простым шагам
Если у вас есть Route::auth()
в вашем routes.php
, то, пожалуйста, удалите эту строку.
Теперь добавьте следующие строки в routes.php
Route::get('super/admin', 'Auth\[email protected]')->name('auth.login.get');
Route::post('super/admin', 'Auth\[email protected]')->name('auth.login.post');
Route::get('super/admin/logout', 'Auth\[email protected]')->name('auth.logout.get');
Затем перейдите к login.blade.php
(скорее всего, в ресурсо-> views-> Auth)
И изменить вид действия для {{ route('auth.login.post') }}
, как это ...
<form action="{{ route('auth.login.post') }}" method="post">
Надеюсь, что это все ответы :)
В App\Http\Controllers\Auth\LoginController
- определить фикцию под названием showLoginForm() как:
public function showLoginForm()
{
$view = property_exists($this, 'loginView')
? $this->loginView : 'auth.authenticate';
if (view()->exists($view)) {
return view($view);
}
return view('auth.login');
}
Он переопределяет функцию showLoginForm, определенный в черте Illuminate\Foundation\Auth\AuthenticatesUsers.
Примечание: В Laravel 5.3 имя функции изменяется от getLogin to showLoginForm. Для деталей Готы Illuminate\Foundation\Auth\AuthenticatesUsers.
В файле маршруты, вместо использования по умолчанию Route::auth()
, вы должны зарегистрировать Маршруты самостоятельно.
Мой совет - запустить php artisan route:list
. Это покажет вам маршруты по умолчанию и их соответствующие контроллеры (и методы). Затем удалите Route::auth()
и выполните маршруты, которые вы хотите вручную.
Так, например, если вы хотите изменить, чтобы войти в URL, вы должны определить его как: Route::get('super/admin', 'App\Http\Controllers\Auth\[email protected]');
Сделайте это для всех маршрутов, которые вы хотите заменить. Удалив Route::auth()
, вы удаляете маршрут регистрации.
если я удалю Route :: auth(), тогда весь проект должен создать пользовательский auth? –
Нет, просто обратитесь к существующим контроллерам. Например, все 'Route :: auth()' does объявляет 'Route :: get ('login', 'App \ Http \ Controllers \ Auth \ AuthController @ showLoginForm');' для вас.Удалив его и явно –
, если я удалю Route :: auth() в моих route.php, так что весь контроллер мой auth работает или нет. После удаления Route :: auth() мне нужно создать пользовательский auth для моего проекта? –
@dhanashri Я также добавил маршрут выхода. И нет, вам не нужно использовать пользовательский Auth ... AuthController, созданный после ввода 'php artisan make: auth', используется здесь ... Ничего не требуется с вашего конца. Все должно работать так, как ожидалось ... И ссылка на регистрацию также не будет работать :) – prateekkathal
Большое вам спасибо :) –