コントローラーからビューへ値を渡す
Laravel 5.7 で、コントローラで値をセットした変数をビューへ渡す方法についてまとめます。
ビューの作成
ビューの中で、受け取った値を使用したい場合 {{ 変数 }} と記述します。
<!DOCTYPE html>
<html lang="{{ app()->getLocale() }}">
<head>
<meta charset="utf-8">
<title>{{ $title }}</title>
</head>
<body>
<h1>{{ $heading }}</h1>
<p>{{ $content }}</p>
</body>
</html>
ビューの中では、キーを指定することで値を表示することができます。
view 関数の引数に指定する
一つ目の方法は、 コントローラーでビューを呼び出す時の view ヘルパ関数の引数に変数を渡す方法です。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HelloController extends Controller
{
//
public function getIndex() {
$data = array();
$data['title'] = 'Laravel View Sample';
$data['heading'] = 'Hello,World!';
$data['content'] = '値の渡し方';
return view('hello',$data);
}
}
ちなみに、次のように書くこともできます。
return view('hello',['title' => 'Laravel View Sample','heading' => 'Hello,World!','content' => '値の渡し方']);
ブラウザから /hello/index へアクセスし Hello, World! が表示されることを確認します。(ここでは、 http://homestead.test/hello/index)
正しく表示されれば、成功です。
view クラスの with メソッドで値を渡す
もう一つの方法が、 view ヘルパ関数で返される view インスタンスの with メソッドで変数を渡す方法です。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HelloController extends Controller
{
//
public function getIndex() {
$data = array();
$data['title'] = 'Laravel View Sample()';
$data['heading'] = 'Hello,World!';
$data['content'] = '値の渡し方(with編)';
return view('hello')->with($data);
}
}
ちなみに、次のように書くこともできます。
return view('hello')->with('title','Laravel View Sample');
とか
return view('hello')->with(['title' => 'Laravel View Sample','heading' => 'Hello,World!','content' => '値の渡し方']);
ブラウザから /hello/index へアクセスし Hello, World! が表示されることを確認します。(ここでは、 http://homestead.test/hello/index)
正しく表示されれば、成功です。