Laravel、ビューに多くの変数を渡す

タグ: Laravel3   Laravel4  

ビューにはwith()で、値を渡せます。

もしくはビューを作成する時に、一緒に渡せます。

View::make('ビュー名', array('user' => $user );

withメソッドが存在していたり、ドキュメントのサンプルが上記の形態で書かれていたりするので、すっかりそういうものだと思い込んでしまっていました。

構造本読んでいたら、思わずアッと思いました。渡すべき値が全部変数に入っているなら、compactが使えるんじゃないかと。これを使えば、withをダラダラ書くことも、配列で指定する手間も省けますしね。

$user = User::all();
$date = '30年6月19日';
$name = Auth::user()->username;
$title = 'ユーザーレポート';

return View::make( 'user.report', compact('user', 'date', 'name', 'title') );

目からウロコです。思い込みは恐ろしいですね。全然思いつかなかった。コアではcompact結構使われているのにです。まあ、チュートリアル書くときは、読みやすさが犠牲になるので使いませんが、実際のコードでは書きやすさが上がるので、こちらも使い勝手がいいですね。