🙆

PHP学習->Laravel ルーティングとは

2023/09/27に公開

ルーティングとは

ブラウザから任意のURLにアクセスがあった場合に、どのコントローラを使うのかを定義する
Laravelでの記述場所:route/web.php

つまりは、クライアントからのリクエストに応じて
サーバー側の処理を指定するという役割がある

クライアントからのリクエストとは

  • URLへのアクセス(=URLをリクエスト)
    クライアントからURLがリクエストされたときは、GETメソッドで受け取る

URLへのアクセス以外にも、データの送信など様々なメソッドか使われる

  • Post:新規データの送信
  • Put:更新データの送信
  • Delete:削除データの送信

ルーティングの設定

laravelの場合、すでにルーティングファイルは用意されている
route/web.php

設定手順

Route::HTTPリクエストメソッド名('URL', [コントローラ名::class, 'アクション名']);
  • HTTPリクエスト
    ページにアクセスするときに、ブラウザからWebサーバに「このページ見させて!」と出されるリクエストのこと
    ページにアクセスする際にはGETメソッドを使用する

  • コントローラ名
    該当URLにアクセスしたときに使用されるコントローラを定義

  • アクション名
    PostController内に定義したアクション名を指定

実装例

メモの一覧を表示するアプリ作成

コントローラ内でindexアクションを定義しておく
ここではindex()が呼び出されたら、投稿一覧ページのビューを表示させますよーの処理
ビューを指定するときはresources/viewsを省略し、フォルダ名.ファイル名(.blade.phpは不要)と記述でOK

PostController.php
class PostController extends Controller
{
    //一覧ページ
    public function index(){
        return view('posts.index');
    }
}

ルーティング内では、下記のように記述する
/postsへのアクセスがあったら、Postcontrollerのindexアクションを呼び出しますよ、
ついでにこのルートの名前を、'posts.index'と名付けますよ
※名づけしておくことで、何か変更があった場合にrouteの記述編集のみで済む

web.php
Route::get('/posts', [PostController::class, 'index'])->name('posts.index');

ルーティングについて読んだとき、なるほど分からんと思ったけど
zennでのアウトプットのために調べまくってたら、理解度があがってきた
やっぱりアウトプットって大事だな~。

Discussion