Je veux remplacer /login
Route vers /admin/login
. Dans web.php
J'ai essayé
//Auth::routes();
Route::get('login', ['as' => 'auth.login', 'uses' => 'App\Modules\Admin\Controllers\AdminUserController@loginAdminUser'])->name('login');
Mais il est toujours affiché Laravel le formulaire de connexion par défaut. Comment puis-je faire cela?
Pour les googlers, voici une liste complète des routes générées par Auth::routes();
in Laravel 5.4 (à 5.7)
// Authentication Routes...
Route::get('login', [
'as' => 'login',
'uses' => 'Auth\LoginController@showLoginForm'
]);
Route::post('login', [
'as' => '',
'uses' => 'Auth\LoginController@login'
]);
Route::post('logout', [
'as' => 'logout',
'uses' => 'Auth\LoginController@logout'
]);
// Password Reset Routes...
Route::post('password/email', [
'as' => 'password.email',
'uses' => 'Auth\ForgotPasswordController@sendResetLinkEmail'
]);
Route::get('password/reset', [
'as' => 'password.request',
'uses' => 'Auth\ForgotPasswordController@showLinkRequestForm'
]);
Route::post('password/reset', [
'as' => 'password.update',
'uses' => 'Auth\ResetPasswordController@reset'
]);
Route::get('password/reset/{token}', [
'as' => 'password.reset',
'uses' => 'Auth\ResetPasswordController@showResetForm'
]);
// Registration Routes...
Route::get('register', [
'as' => 'register',
'uses' => 'Auth\RegisterController@showRegistrationForm'
]);
Route::post('register', [
'as' => '',
'uses' => 'Auth\RegisterController@register'
]);
php artisan route:list
reviendra
+--------+----------+------------------------+------------------+------------------------------------------------------------------------+--------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------+------------------------+------------------+------------------------------------------------------------------------+--------------+
| | GET|HEAD | login | login | App\Http\Controllers\Auth\LoginController@showLoginForm | web,guest |
| | POST | login | | App\Http\Controllers\Auth\LoginController@login | web,guest |
| | POST | logout | logout | App\Http\Controllers\Auth\LoginController@logout | web |
| | POST | password/email | password.email | App\Http\Controllers\Auth\ForgotPasswordController@sendResetLinkEmail | web,guest |
| | GET|HEAD | password/reset | password.request | App\Http\Controllers\Auth\ForgotPasswordController@showLinkRequestForm | web,guest |
| | POST | password/reset | password.update | App\Http\Controllers\Auth\ResetPasswordController@reset | web,guest |
| | GET|HEAD | password/reset/{token} | password.reset | App\Http\Controllers\Auth\ResetPasswordController@showResetForm | web,guest |
| | GET|HEAD | register | register | App\Http\Controllers\Auth\RegisterController@showRegistrationForm | web,guest |
| | POST | register | | App\Http\Controllers\Auth\RegisterController@register | web,guest |
+--------+----------+------------------------+------------------+------------------------------------------------------------------------+--------------+
Routes pour 5.5 LTS (Confirmé)/5.6 (Confirmé)/5.7 (?)
Quelqu'un peut-il confirmer que cela fonctionne avec 5.7?
// Authentication Routes...
Route::get('login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('login', 'Auth\LoginController@login');
Route::post('logout', 'Auth\LoginController@logout')->name('logout');
// Registration Routes...
Route::get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
Route::post('register', 'Auth\RegisterController@register');
// Password Reset Routes...
Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset');
Route::post('password/reset', 'Auth\ResetPasswordController@reset');
Comme je luttais avec le même problème, j’ai réussi à trouver un bon moyen de remplacer laravel 5.5 routes:
La fonction statique Auth :: routes (); :
public static function routes()
{
static::$app->make('router')->auth();
}
La fonction auth () est appelée ici et crée des routes auth:
laravel/framework/src/Illuminate/Routing/Router.php
public function auth()
{
// Authentication Routes...
$this->get('login', 'Auth\LoginController@showLoginForm')->name('login');
$this->post('login', 'Auth\LoginController@login');
$this->post('logout', 'Auth\LoginController@logout')->name('logout');
// Registration Routes...
$this->get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
$this->post('register', 'Auth\RegisterController@register');
// Password Reset Routes...
$this->get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
$this->post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
$this->get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset');
$this->post('password/reset', 'Auth\ResetPasswordController@reset');
}
Vous pouvez copier et coller le corps de la fonction directement dans votre web.php et les modifier à votre guise.
Vous pouvez trouver tous les itinéraires de connexion de Laravel 5.7. Il y a quelque chose de nouveau, la vérification de courrier électronique. La documentation connexe est ici .
Si les instructions dans le bloc de code activent/désactivent les fonctionnalités d'authentification. En utilisant helper, vous pouvez passer les paramètres register
, reset
, verify
à Auth::routes(['verify' => true]);
. Corrigez donc les instructions if
en utilisant config()
ou utilisez-les simplement comme vous le souhaitez.
Enveloppant ici!
Lorsque vous appelez Auth::routes()
, les itinéraires suivants seront enregistrés.
Route::get('login', 'LoginController@showLoginForm')->name('login');
Route::post('login', 'LoginController@login');
Route::post('logout', 'LoginController@logout')->name('logout');
// Registration Routes...
if (config('register'))
{
Route::get('register', 'RegisterController@showRegistrationForm')->name('register');
Route::post('register', 'RegisterController@register');
}
// Password Reset Routes...
if (config('reset'))
{
Route::get('password/reset', 'ForgotPasswordController@showLinkRequestForm')->name('password.request');
Route::post('password/email', 'ForgotPasswordController@sendResetLinkEmail')->name('password.email');
Route::get('password/reset/{token}', 'ResetPasswordController@showResetForm')->name('password.reset');
Route::post('password/reset', 'ResetPasswordController@reset')->name('password.update');
}
// Email Verification Routes...
if (config('verify'))
{
Route::get('email/verify', 'VerificationController@show')->name('verification.notice');
Route::get('email/verify/{id}', 'VerificationController@verify')->name('verification.verify');
Route::get('email/resend', 'VerificationController@resend')->name('verification.resend');
}
Changer ceci en:
Route::get('/admin/login', ['as' => 'admin.login', 'uses' => 'App\Modules\Admin\Controllers\AdminUserController@loginAdminUser']);
Route::get('login', ['as' => 'login', 'uses' => 'App\Modules\Admin\Controllers\AdminUserController@loginAdminUser']);
name
function est les synonymes de as
clé du tableau. Donc pas besoin d'ajouter name
à la fin.