laravelのImplicit Bindingについて調べた

はじめに

Laravelでは、決められた変数名が、ルートセグメント名と一致するルートと、コントローラーアクションで定義されたEloquentモデルを自動的に紐付けるようだ。
便利なんだろうけど、少し難しいので整理する。

具体的な動き

この場合、$user変数は App\User モデルとしてタイプされ、変数名は {user} URLセグメントと一致するため、LarvelはリクエストURIの対応する値と、一致するIDをもつモデルインスタンスを自動的に挿入する。

一致するモデルインスタンスが見つからない場合は、404 status codeを返却する。

サンプルコード

database

router

Controller

blade file

結果

参考情報

https://laravel.com/docs/5.5/routing#implicit-binding