Laravelのルーティング【現役エンジニアが解説】
今回は、Laravelのルーティングについて、簡単に解説していきます。
基本
Laravelにおいては、Routeクラスのメソッドを使ってルーティングを設定します。
Route::get('/user', 'UserController@index');
メソッドは、getとpost、put、patch、delete等で使い分け、上記の例では、getを使用しています。
これらのメソッドでは、第一引数に文字列でパスを指定し、第二引数に文字列で「使用するコントローラ名@関数名」を指定します。
パラメータ
Laravelのルーティングでは、パラメータをパス内に定義できます。
Route::get('user/{user_id}/{info_type}', 'UserController@detail');
上記の例のように、パスの一部を{}で囲うとその部分はパラメータとなります。
class UserController extends Controller { public function detail($arg1,$arg2) { // 途中の処理を書く return view('user.detail', ['user_id'=>$arg1, 'info_type'=>$arg2]); } }
コントローラで使う際には、関数(例ではUserControllerのdetail関数)の引数として順番に受け取ることができます。
アクセス制限
Laravelには、アクセス制限をかけ、ページを守るルーティング設定の機能が標準であります。
Route::middleware('auth')->group(function(){ Route::get('/user', 'UserController@index'); }
ログインを要求する場合には、上記のように、引数にauthの文字列を指定したRouteクラスのmiddlewareメソッドを使います。
このgroupメソッドの引数の関数内で、getメソッド等でルーティング設定を行うと、その中で定義されたパスへのアクセスにはログインが必須となります。