読者です 読者をやめる 読者になる 読者になる

ぬぬん!

やってみたこと,思ったこと

【這いよれ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

ちょっと後でまた振り返り加筆するかもなー