itLinkedInPocketCopy皆さんこんにちは。今回は、ルーティングに備わっている便利機能を解説します。その名も「ルートモデル結合」。これを使うと、ルーティングの中で簡単にEloquentモデルを取得することができます。この機能をうまく使うとシンプルなAPIであれば爆速で開発することができます。それではみていきましょう。関連ルートモデル結合とは一言でいうと、api.phpやweb.phpなどのルーティングでEloquentモデルを取得する仕組みです。百聞は一見にしかずなので、どれだけ簡単なのかまずはコードを御覧ください。$user->email;});/users/{user}というルートを定義しています。このURLにアクセスするとUserモデルのemail項目を取得することができます。どのような仕組みなのかを解説していきます。引数の中に定義されている{user}というパラメータです。実際にURLを呼び出す際にはこの部分に取得したいユーザーのidを指定します。id=1のユーザーを取得したい場合は/users/1とアクセスします。この引数はクロージャ(無名関数)の形式で指定します。引数にはUserモデル型の変数$userを指定します。この$userは第一引数のURLに含まれていた{user}と名前を一致させる必要があります。この引数$userにはURLの{user}で指定したIDのモデルが渡ってきます。/users/1と指定した場合はid=1のuserが取得できるということですね。この引数$userを利用してクロージャの中で様々なロジックを書くことができます。今回はシンプルにemail項目を返しています。ここで定義したURLを実際に呼び出してみましょう。serveでサイトを立ち上げておきますhttp://localhost:8000/api/users/1#以下のようなレスポンスが帰ってくるjoe@xxx.xxx以上、理解いただけましたでしょうか。非常に簡単な記述でリソースを取得するAPIが構築できました。コントローラを作成せずに作ることができるので大分お気軽です!使いどころルートモデル結合は非常に便利ですが、デメリットもあります。ここで私なりに考えたルートモデル結合の使い方を紹介していきます。単純な取得処理ルートモデル結合は便利です!しかし複雑な処理には向きません。複雑なロジックも記述すること自体はできるのですが、全てをルーティングに記述するので、すぐにファイルが肥大化して読みづらくなります。ルーティングは他のURL定義も含まれているので、一覧性が命です。一つのURLで何十行も記述するのはやめましょう。私が推奨するのは、ルートモデル結合を使うときは、ロジックを一切書かないというルールを作ることです。すれば1つのURLで3行ほどに収まるので一覧性は損ないません。ロジックがルーティングにあったり、コントローラにあったりとバラけたりしなくなるため管理しやすくなります。極端に思えるかもしれませんが、これぐらいがちょうどよいと私は思っています。まとめいかがでしょうか。このような便利な機能は積極的に使っていきたいところですが、どのように使うのかを考えることが重要ですね。使い方を考えずに導入すると、カオスな状態を招いてしまうかもしれません。した運用ルールを作った上で導入してみると良い結果につながると思います。【Laravel】メンテナンスモードが便利すぎるので広めたい!10分でマスターできます。今回はLaravelのメンテナンスモードを説明したいと思います。...【Laravel】コレクションでorWhereをどう実現するか(OR条件で抽出)こんにちは。モデルの準備と一覧表示画面こんにちは。...LaravelでCookieを扱う(Cookieの発行〜Viewに表示まで)こんにちは。今回はLaravelでCookieを扱う方法を解説します。コメントをキャンセルメールアドレスが公開されることはありません。*ウェブサイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。一覧画面に検索条件、フィルターを設置するこんにちは。モデルの準備と一覧表示画面こんにちは。Filamentのインストール手順こんにちは。UncategorizedWindowsにComposer2をインストールする方法こんにちは。