laravel5.1で、特定のレコードを一行で取得できる静的メソッドをModelに追加してみた。
app/User.phpに静的メソッドを追加!
1 2 3 4 5 6 7 8 9 10 |
public static function get_flag_user_pulldown() { $users = User::where('nantoka_flag', '=', 1)->get(); $flag_users = array("" => ""); foreach($users as $user){ $flag_users += array($user->id => $user->name); } return $flag_users; } |
呼び出し側のapp/Http/Controller/UserController.php
1 2 3 4 5 6 7 8 |
public function index() { // この一行で、特定のフラグが立ったユーザを取得できるようになる $flag_users_pulldown_data = User::get_sv_pulldown(); // プルダウンなんかで使えるように、bladeビューに渡してあげる。 return view('users.index')->with(compact('flag_users_pulldown_data')); } |
大昔のphpは、htmlの間に記述されてた(ビュー的な使い方)
一昔前には、php単体で、直接SQL文を実行していた(コントローラー的な使い方)
現代のMVCモデルでは、データベース処理はモデルクラスに書くべきなんだよね~。
ついついコントローラー側に書いちゃうけど、肥大化していて見通しが悪くなる…。