みんなやってみよう〜!私にもてきたからみんなできる!
モデルで書いたメソッドをコントローラーで用いる書き方!
例えばログインしている人の投稿のみ欲しい時、コントローラだけで書くと以下のようになる。
BbsController.php
Bbs::where('user_id' => Auth::id())->get();
しかし、
ファイルが増えてくるとわざわざ毎回取得してくることが面倒になる。
下手をするとログイン者の投稿情報が必要の度にこのコードがかかれることとなる。
しかし!!
毎回このコードを書かなくてもいい方法があるんです!
それが、モデルにメソッドを書いてコントローラーで呼び出す方法
である。
Database
>>Users table
+----+--------+
| id | name |
+----+--------+
| 1 | あけみ |
| 2 | ゆうな |
| 3 | たくや |
+----+--------+
>>Bbses table
+----+----------------------------+
| id | bbs | user_id |
+----+----------------------------+
| 1 | 今日のご飯 | 1 |
| 2 | 焼肉がいい | 2 |
| 3 | 夜ご飯なににする | 1 |
+----+----------------------------+
bbs.php
public function allGet($auth_id) {
//ログインユーザーのカートデータ読み込み
return $this->where('user_id', $auth_id)->get();
}
BbsController.php
use App\Bbs;
public function __construct(Bbs $bbs) {
$this->bbs = $bbs;
}
public function index() {
$bbses = $this->bbs->allGet(Auth::id());
//$this->モデル->関数名
dd($bbses);
}
//下記のデータが取れてきてるはず!一度確認してみよう!!
Database
(例)ログイン者があけみさん
id=1のあけみさんの投稿の取得したときのデータ
+----+----------------------------+
| id | bbs | user_id |
+----+----------------------------+
| 1 | 今日のご飯 | 1 |
| 3 | 夜ご飯なににする | 1 |
+----+----------------------------+
以上になります!
最初は丸写しでもいい!!
とりあえず、一度モデルで書いたメソッドをコントローラーで呼び出してみましょう〜!!
LGTM大好物なんで、ポチッと投げ銭感覚でおねがいします〜!
BbsController.php(番外編)
use App\Bbs;
//コンストラクトない場合
public function index() {
$bbses = (new Bbs)->allGet(Auth::id());
//$this->モデル->関数名
dd($bbses);
}