4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ルーティング実践(Laravel)

Last updated at Posted at 2021-01-03

はじめに

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

ルーティングとは

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

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を触りたくてしょうがないです。また投稿します。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?