2016-02-09 16 views
6

Obecnie piszę aplikację, która ma tylko konta dla pracowników firmy, a nie zwykłych użytkowników. W związku z tym chciałbym zachować adresy URL odnoszące się do obszaru "admin" witryny pod adresem URL/admin, co oznacza zmianę /login na /admin/login i /register na /admin/register.Zmień adres URL logowania/rejestracji w Laravel 5.2

Jednak nie jestem w stanie zmienić adresu URL logowania i rejestru w Laravel 5.2, wydaje się, że w poprzednich wersjach była to prosta kwestia dodawania protected $loginPath = '/admin/login'; do Auth\AuthController. Nie ma to jednak znaczenia przy dodawaniu do mojego AuthController.

Poniżej przedstawiono dane wyjściowe z php artisan route:list;

+--------+----------+-------------------------+------+----------------------------------------------------------- 
| Domain | Method | URI      | Name | Action 
+--------+----------+-------------------------+------+----------------------------------------------------------- 
|  | GET|HEAD |/      |  | App\Http\Controllers\[email protected] 
|  | GET|HEAD | admin     |  | App\Http\Controllers\[email protected] 
|  | GET|HEAD | admin/profile   |  | App\Http\Controllers\[email protected] 
|  | GET|HEAD | login     |  | App\Http\Controllers\Auth\[email protected] 
|  | POST  | login     |  | App\Http\Controllers\Auth\[email protected] 
|  | GET|HEAD | logout     |  | App\Http\Controllers\Auth\[email protected] 
|  | POST  | password/email   |  | App\Http\Controllers\Auth\[email protected] 
|  | POST  | password/reset   |  | App\Http\Controllers\Auth\[email protected] 
|  | GET|HEAD | password/reset/{token?} |  | App\Http\Controllers\Auth\[email protected] 
|  | GET|HEAD | register    |  | App\Http\Controllers\Auth\[email protected] 
|  | POST  | register    |  | App\Http\Controllers\Auth\[email protected] 
+--------+----------+-------------------------+------+----------------------------------------------------------- 

Odpowiedz

7

W L5.2, wszystkie połączenia uwierzytelniania są zgrupowane w szlaku zwanym Route::auth().

Jeśli szukasz symbolu auth(), możesz zobaczyć funkcję auth(), która zawiera wszystkie linki trasy.

Sprawdź ten plik: Illuminate\Routing\Router dla funkcji auth().

Ale nie jestem pewien, czy to dobra praktyka, aby to zmienić tutaj.

Edit:

Więc jeśli trzeba zmienić trasy domyślnej auth, obejmują wszystkie trasy w pliku routes.php i zmienić uri jak chcesz.

Aby uzyskać odwołanie:

// Authentication Routes... 
    Route::get('login', 'Auth\[email protected]'); 
    Route::post('login', 'Auth\[email protected]'); 
    Route::get('logout', 'Auth\[email protected]'); 

    // Registration Routes... 
    Route::get('register', 'Auth\[email protected]'); 
    Route::post('register', 'Auth\[email protected]'); 

    // Password Reset Routes... 
    Route::get('password/reset/{token?}', 'Auth\[email protected]'); 
    Route::post('password/email', 'Auth\[email protected]'); 
    Route::post('password/reset', 'Auth\[email protected]'); 
+0

Dzięki. Jaka byłaby najlepsza praktyka zastąpienia tych wartości? – dwilson390

+0

Obawiam się, że musisz to zmienić tutaj. Ale poczekaj, aż ktoś to potwierdzi. –

+0

W porządku, dziękuję za pomoc! – dwilson390

3

Można zadzwonić Route::auth() wewnątrz wcześniej określonej grupy.

Route::group(['prefix' => 'admin'], function() { 
    Route::auth(); 
}); 
0

To zła praktyka, aby zmienić coś w folderze dostawcy, zwłaszcza, że ​​zostaną one nadpisane w dowolnym momencie uruchomić aktualizację kompozytora.

Więc Zmień Auth::routes(); na routes/web.php do

// Authentication Routes... 
    $this->get('login', 'Auth\[email protected]')->name('login'); 
    $this->post('login', 'Auth\[email protected]'); 
    $this->post('logout', 'Auth\[email protected]')->name('logout'); 

    // Registration Routes... 
    $this->get('registers', 'Auth\[email protected]'); 
    $this->post('registers', 'Auth\[email protected]'); 

    // Password Reset Routes... 
    $this->get('password/reset', 'Auth\[email protected]'); 
    $this->post('password/email', 'Auth\[email protected]'); 
    $this->get('password/reset/{token}', 'Auth\[email protected]'); 
    $this->post('password/reset', 'Auth\[email protected]'); 
Powiązane problemy