【這いよれLaravelさん】ルーティング (2)
【這いよれLaravelさん】ルーティング (1) - ぬぬん! の続き(少し)
ルートプレフィックス
公式の説明だけではよくわからなかったので 自分なりに噛み砕いてみる
下記のようなルーティングを実現したい場合
/charactor/totoro/detail /charactor/nekobasu/detail /charactor/satsuki/detail /charactor/mei/detail /charactor/kanta/detail
全て接頭辞(プレフィックス)として/charactor
がある
この時prefixをcharactor
としたグループを作ることで
いい感じに書ける
// プレフィックスルーティング Route::group(['prefix' => 'charactor/{name}'], function () { Route::get('detail', function ($name) { // "charactor/{name}/detail" URLに一致 return $name . 'の詳細'; }); });
この記法が可能になることで
ルートのツリー構造が
ブロック形式で可視化されてよさそう^q^
ルーティングまとめ感想
要はgroup化とname spaceなきがする。
存在しうるルートをベタで羅列するよりも
group化することで「●●の☓☓です」「●●の△△です」といた枝分かれ感が
ソースで表現出来てて良いのではないかなーと言う感じ。
また、ルートに名前をつけることでviewでリンクを記述するときに便利なので積極的に使いたい
CSRF保護
何故かルーティングの章にCSRFがあったので
ルーティング?と思いつつも一応やっておく
csrfのヘルパーがあるそうで フォーム内に
<?php echo csrf_field(); ?>
を書いておけばhiddenでcsrfトークンを生成してくれるらしい
べんりー
CSRF保護の除外
外部サービスを利用するような場合、Webフック処理ルートに対してはCSRF保護を対象外にする必要がある。 app/Http/Middleware/VerifyCsrfToken.phpに以下を追記することで除外対象の指定が可能になる
class VerifyCsrfToken extends BaseVerifier { protected $except = [ // ここに書く 'other_searvice/*', ]; }
まだこの事態に出会ってないから特に覚えておきたい
モデル結合ルート
ざっくりいうと
route内でモデルのインスタンス使いたい時どうするんですかー!って話。
その状況ってどういう時に起こるものなん(´・ω・`)
ちょっと良くわからなさすぎて寝かせる
とりあえず手を動かしたものはこちらということで晒しておく
GitHub - gomayumax/laravel-study at routing
ちょっと後でまた振り返り加筆するかもなー