Laravelのメソッドインジェクションについて調べた

Laravelのメソッドインジェクションについて調べた

977 回閲覧されました

みなさんこんにちは、jonioです。

私はコントローラーでデータベースの値の取得をして表示させていましたがデータベースの処理はモデルでしてそれをコントローラーでメソッドとして使わないといけない事を知りました。

これをメソッドインジェクションと言いますが今回はこれのアウトプットの記事になります。

 

メソッドインジェクションとは

例えばコントローラーで↓の記述をしたとします。

4行目の「Cart::where(‘user_id’,$user_id)->get();」ですがデータベースの操作をしています。

データベースの操作はモデルでしないといけないのにコントローラーでするのは動作はするけど正しくないです。

だからモデルに記述しますがメソッドとして記述します。

そしてshowCartメソッドをコントローラーで呼び出します。

PHPもですがメソッドを使うにはインスタンスを生成しないといけないです。

しかし1行目のmyCart(Cart $cart)の様に( )の中に「モデル $変数」と記述する事で6行目の「$cart->showCart()」の様に「$変数->モデルのメソッド」としてコントローラーでモデルのメソッドを使う事ができます。

$変数」がインスタンスみたいな感じです。

これがメソッドインジェクションです。