Laravelの勉強がてらメモ。

viewヘルパ関数

Laravelでコントローラーからviewへ変数を渡す方法としては、


$data = array(
    "name" => "Tanaka",
    "age" => 30,
);
return view('user', $data);

viewヘルパ関数を使用。

第1引数は、resources/viewsディレクトリ配下のファイル名。

ちなみにresources/viewsディレクトリ配下にディレクトリを作成し、その中にファイルを作成している場合は、ドットでつなぐ。


$data = array(
    "name" => "Tanaka",
    "age" => 30,
);
return view('admin.user', $data);

第2引数に配列を設定することで、ビューに変数を渡すことが可能。

withメソッドを使用

他のやり方としては、withメソッドで変数を渡すこともできる。

return view('admin.user')->with('name', 'Tanaka');

compact関数を使用

compact関数を使用すると、もっと楽に変数をビューに渡せる。

$name = "Tanaka";
$age = 30;
return view('user', compact("name", "age"));

compact関数ってLaravel特有の関数かと思いこんでましたけど、
普通にPHPの関数でした。

https://php.net/manual/ja/function.compact.php

compact関数の結果を試しに出力。

$name = "Tanaka";
$age = 30;
var_dump(compact("name", "age"));
array(2) {
  ["name"]=>
  string(6) "Tanaka"
  ["age"]=>
  int(30)
}

やってることは、

$data = array(
    "name" => "Tanaka",
    "age" => 30,
);
return view('user', $data);

と同じですね。納得。

誰かスマートな書き方をした人のコードが広まったんだろうなぁ。