(Laravel) ルーティングを基礎から理解する

(Laravel) ルーティングを基礎から理解する

 

本記事では、
Laravelを学び始めてまず最初に学ぶ
「ルーティング」についてのメモ書き

 

Laravelのルーティングとは

laravelのルーティングのイメージ画像

 

laravelのルーティングとは、簡単に言うと、
特定のアドレスにアクセスしたときに、そのアドレスに割り当てられたプログラムが実行される機能のこと。

 

通常のPHPのルールとの違い

通常のPHPでは、ドキュメントルート直下にある「test.php」にwebからアクセスする場合、
例えば「https://hara-chan.com/test.php」というふうにアクセスする。

しかし、laravelの場合、「https://hara-chan.com/test.php」にアクセスしたら、
「https://hara-chan.com/test.php」に割り振られたプログラムを実行するよという考え方をする。

つまり、「◯◯にアクセスしたら、△△を実行してね」という設定をするのがルーティングだ。

 




Laravelのルーティングで覚えておくべき階層

laravelのルーティングを理解するのに覚えなければいけない階層は、
Laravelアプリケーション最上位層の「routes」ディレクトリだ。

app
artisan
bootstrap
composer.json
composer.lock
config
database
package-lock.json
package.json
phpunit.xml
public
resources
routes               ★Laravelのルーティングで覚えておくべきディレクトリ
server.php
storage
tests
vendor
webpack.mix.js

 

 

ルーティングは、「routes」直下の「web.php」に記載する

laravelのディレクトリ構成でも最上位に位置する
「routes」ディレクトリ。

この直下に属する、
「web.php」というファイルにルーティング情報を記載していく

- routes
    |
    ∟ web.php    ★ルーティング情報を記載していく。

 

「routesのweb.phpといったらルーティング」。と言う風に覚えてしまおう。

 

 

ルーティングの基本的な書き方

ルーティングの基本的な書き方は下記(web.php)

Route::メソッド(‘パス’, function() {
    return 戻り値; 
});

 

上記を詳しく説明すると、、

 

メソッド

getかpostを指定できる

「〇〇にアクセスしたら、△△のプログラムを実行する」際に、getで実行するのかpostで実行するのかの違いとなる

 

パス

ドキュメントルートからのパスを書く

「〇〇にアクセスしたら、△△のプログラムを実行する」の〇〇の部分。

 

戻り値

実行したいプログラムを指定する

「〇〇にアクセスしたら、△△のプログラムを実行する」の△△の部分。

 

ルーティングのルールメモ

基本的なlaravelのルーティングの規則は下記。

laravelのルーティングの規則

「getまたはpostのメソッドいづれかの方法で、
〇〇にアクセスしたら、△△のプログラムを実行する」

 

パスには変数を指定可能

パスには変数を指定可能。

指定には{〇〇〇}というふうに{}で値を囲んであげる。
そして変数は、実行プログラムに変数として渡してあげることが可能。

web.phpに以下を書く。戻り値には指定した変数を返すように指定。

laravel-routing-param

ブラウザから「http://127.0.0.1:8000/hara-chan-dayo!」とアクセス

routing-result

hara-chan-dayo!と表示された。

 

パスの変数の指定を任意にする

変数の指定がされていたら、基本的に変数は「必須」
指定しないでアクセスするとエラーになる。

しかし、{〇〇?}のように、?を入れることで、変数の指定は任意になる。

そして引数として受け取る側にはデフォルト値が指定でき、変数が渡ってこなかったときの値をあらかじめ指定できる。

param-default

指定した場合

指定しなかった場合(default)

 

ルーティングの順番に注意

ルーティングの順番には注意。
ルーティングは上から順番に調べられていって、当てはまったルーティングのタイミングでそのルーティングが実行される

laravel-routing-order

 

そのため上記の書き方だと、
「ぜったいとどかないところ」というルーティングには絶対に届かない。

なぜなら、
一つ上のルーティングで「unreach」というパスは{msg]に拾われてしまい、
そちらのルーティング(画面に’unreach’と表示)が実行されてしまうからだ。

 

だから、Laravelのルーティングを記述する際は、
基本は許容範囲の広いルーティングは後ろの方に記述する。

今回の場合、{msg}のルーティングは、unreachのルーティングの後に記載すれば解決する。

 

 

Laravel 関連記事

(Laravel) ルーティングを基礎から理解する
(Laravel) ビューの使い方(基本)
(Laravel) bladeのディレクティブの使い方を解説
(Laravel) bladeのレイアウトの使い方
(Laravel) コンポーネントとサブビューの違い
(Laravel) ビューコンポーザの使い方
(Laravel) ミドルウェアの使い方を解説
laravel-validation
laravel-validation-outof-controller
(Laravel) DBクラスとクエリビルダの違い・使い方
(Laravel) マイグレーション実施手順
(Laravel) シーディングの 実行手順
(Laravel) Eloquentの使い方を解説
laravel-somtimes-validation
(Laravel) migrationやり直しコマンドあれこれ

 

https://readouble.com/laravel/8.x/ja/routing.html

 

ルーティングを理解!Laravelでrouteを使う方法【初心者向け】

 

 

記事が気に入った方はシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。