tohokuaikiのチラシの裏

技術的ネタとか。

LaravelのAuthのURIを変更する。

routes/web.php

<?php
Auth::routes();

って書くと、自動的に

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    |

が登録されるのがあれだなー、/loginじゃなくて、/user/loginとかにしたいなーって思ったときにどうしよう?って思ったんだけど、ひとつづつ

<?php
Route::get('login', 'Auth\LoginController@showLoginForm')->name('login');

とかしていけばいいのか。

いや、prefixを使えばよかっただけだった。

<?php
Route::prefix('admin')->group(function(){
    Auth::routes();
});

で全部adminが付いた。

更に、

<?php
Route::name('admin.')->prefix('admin')->group(function(){
    Auth::routes();
});

でNameにもadmin.がprefixされるようになる。