(PHP) Laravel、ルーティングのメモ書き

laravel-routing

 

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

 

Laravelのルーティングとは

laravel-routing-image

特定にアドレスにアクセスしたときに、そのアドレスに割り当てられたプログラムが実行されること。

 

通常の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」ディレクトリだ。

 

 

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

laravelのディレクトリ構成でも最上位に位置する「routes」ディレクトリ。
この直下に属する「web.php」というファイルにルーティング情報を記載していく。

- routes
    |
    ∟ web.php

「routesのweb.phpといったらルーティング」

 

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

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

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

 

 

メソッド

getかpostを指定できる

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

 

パス

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

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

 

戻り値

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

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

 

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

 

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

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

 

パスには変数を指定可能

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

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

laravel-routing-param

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

routing-result

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

 

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

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

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

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

param-default

指定した場合

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

 

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

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

routing-order

 

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

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

 

だから基本は許容範囲の広いルーティングは後ろの方に記述する。
今回の場合、{msg}のルーティングは、unreachのルーティングの後に記載すれば解決する。

 

 

 

 

 

 

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

コメントを残す

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