2016-11-26 3 views
1

Здравствуйте, я использую версию 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 изменить маршрут входа?

ответ

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"> 

Надеюсь, что это все ответы :)

+0

, если я удалю Route :: auth() в моих route.php, так что весь контроллер мой auth работает или нет. После удаления Route :: auth() мне нужно создать пользовательский auth для моего проекта? –

+0

@dhanashri Я также добавил маршрут выхода. И нет, вам не нужно использовать пользовательский Auth ... AuthController, созданный после ввода 'php artisan make: auth', используется здесь ... Ничего не требуется с вашего конца. Все должно работать так, как ожидалось ... И ссылка на регистрацию также не будет работать :) – prateekkathal

+0

Большое вам спасибо :) –

0

В 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.

0

В файле маршруты, вместо использования по умолчанию Route::auth(), вы должны зарегистрировать Маршруты самостоятельно.

Мой совет - запустить php artisan route:list. Это покажет вам маршруты по умолчанию и их соответствующие контроллеры (и методы). Затем удалите Route::auth() и выполните маршруты, которые вы хотите вручную.

Так, например, если вы хотите изменить, чтобы войти в URL, вы должны определить его как: Route::get('super/admin', 'App\Http\Controllers\Auth\[email protected]');

Сделайте это для всех маршрутов, которые вы хотите заменить. Удалив Route::auth(), вы удаляете маршрут регистрации.

+0

если я удалю Route :: auth(), тогда весь проект должен создать пользовательский auth? –

+0

Нет, просто обратитесь к существующим контроллерам. Например, все 'Route :: auth()' does объявляет 'Route :: get ('login', 'App \ Http \ Controllers \ Auth \ AuthController @ showLoginForm');' для вас.Удалив его и явно –