Laravel5入門 コントローラーからビューに変数を渡す方法

前回「Laravel5入門。ルート、コントローラー、ビューの基本的な使い方」でとりあえずビューを表示することが出来ました。
では、このビューにデータを渡したいときはどうすればいいのでしょうか。

ビューに変数を渡す方法

前回作成したビューにちょっと手を加えます。

に変更して、ContactController内で$nameに変数をセットしてビューに渡せるようにしてみましょう。
ContactController内のindexメソッドを編集します。

app/Http/controllers/WelcomeControllers.php

$name変数に文字列を格納して、view()メソッドに->with()メソッドをつなげて変数をビューに渡すというやり方です。
これでhttp://XXX/contactにアクセスすると、「ようこそ 田中太郎さん。お問合せ画面です」と表示されるようになります。簡単ですね。

上のケースでは

を使って変数を表示させていましたが、bladeテンプレートを使っている場合は

と書き換えることも可能です。変数を{{}}で囲むだけでechoしてくれて、しかもエスケープまでしてくれます。
ただし、この記法を使うにはファイル拡張子を.phpではなく、.blade.phpにして置かなければなりません。
Bladeテンプレートを使うとlaravelに備わっている様々な便利な機能を使うことができます。ビューファイルの拡張子は基本.blade.phpを使うようにしておきましょう。

詳しいBladeテンプレートの機能は公式サイトを参考に。

ビューに配列を渡す方法

上の例では変数を一つだけ渡しましたが、2つ以上渡したいときは配列を渡すことができます。
app/Http/controllers/WelcomeControllers.php

ビューの方は

に書き換えてください。ブラウザをリフレッシュしてみると表示はそのままですね。うまく配列でデータを渡せています。

その他のデータの渡し方

データの渡し方には他の方法もあります。
app/Http/controllers/WelcomeControllers.php

複数のデータを渡したいときは

といったかんじです。
どの方法を使って変数を渡すかは個人の好みでどれでもいいです。個人的にはcompactを使ったほうがすっきりしていいかなと思います。
詳しいデータの渡し方は公式サイトを確認して下さい。

以上。ビューにデータを渡す方法でした。