ルーティング実践(Laravel)


はじめに

今回はルーティング記述しついで対応するコントローラとメソッドをコマンドで作成するところまで、軽く基本をおさらいします。

ルーティングとは

ルーティングとは〜にアクセスされたら〜コントローラーの〜アクションメソッドを実行する、という処理の流れを表すものです。

routes/web.phpにRouteファサードを使って記述します。たとえば
Route::get('/user', 'UserController@index');
getメソッドを使うとこんな感じです。処理の流れとしては、/userにアクセスされた時、UserControllerコントローラのindexアクションメソッドが実行されます。

Route::get
Route::post
Route::put
Route::patch
Route::delete

などが同様に使えます。

書式は以下の通り
Route::get('path', クロージャ); // クロージャの中にpathに対応する処理を書く
Route::get('path', 'コントローラ名@アクション名');

ルーティングを記述

実はLaravelでは、よく使われる機能のルーティング(CRUDルーティング)をひとまとめにしたメソッドがデフォルトで用意されています!

Route::resourcelaravel/routes/web.phpに追加すると下記7つの処理を定義するルートが全て登録できます!

  • 一覧表示(index)
  • 個別表示(show)
  • 登録画面表示(create)
  • 登録処理(store)
  • 更新画面表示(edit)
  • 更新処理(update)
  • 削除処理(destroy)

ためしてみましょう。

laravel/routes/web.php
<?php

Auth::routes();
Route::resource('/articles', 'ArticleController'); //この行を追加

下記コマンドでルーティングが追加できたか確認・・

$ php artisan route:list

追加できてる!!

+--------+-----------+-------------------------+------------------+------------------------------------------------------------------------+------------+
| Domain | Method    | URI                     | Name             | Action                                                                 | Middleware |
+--------+-----------+-------------------------+------------------+------------------------------------------------------------------------+------------+
|        | POST      | articles                | articles.store   | App\Http\Controllers\ArticleController@store    登録処理                       | web        |
|        | GET|HEAD  | articles                | articles.index   | App\Http\Controllers\ArticleController@index    一覧表示                       | web        |
|        | GET|HEAD  | articles/create         | articles.create  | App\Http\Controllers\ArticleController@create   登録画面表示                       | web        |
|        | DELETE    | articles/{article}      | articles.destroy | App\Http\Controllers\ArticleController@destroy  削除処理                       | web        |
|        | PUT|PATCH | articles/{article}      | articles.update  | App\Http\Controllers\ArticleController@update   更新処理                       | web        |
|        | GET|HEAD  | articles/{article}      | articles.show    | App\Http\Controllers\ArticleController@show     個別表示                       | web        |
|        | GET|HEAD  | articles/{article}/edit | articles.edit    | App\Http\Controllers\ArticleController@edit   更新画面表示

{article}の部分には更新対象とするArticleモデルのid
例えば、idが3である記事の更新画面を表示するURLは、開発環境ではlocalhost/articles/3/editとなります。

コントローラーとメソッドも作る

php artisan make:controller ArticleController --resourceで対応するコントローラとメソッドを自動生成!

まとめ

今回はルーティング記述しついで対応するコントローラとメソッドをコマンドで作成するところまで。最近はLaravelを触りたくてしょうがないです。また投稿します。