【Laravel】コントローラから、テンプレートへの値の受け渡しメモ


コントローラから、viewテンプレートへ値を受け渡したいときは、複数の方法で記述できます。

基本的には、コントローラのメソッドで

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class SampleController extends Controller
{
    public function index()
    {
        // 
        return view('テンプレート情報', 配列);
    }
}

indexメソッドのreturn以下のように、view関数の第1引数にテンプレート情報、第2引数にテンプレート側に送る配列を用意します。

例えば、

class SampleController extends Controller
{
    public function index()
    {
        // 
        return view('index', ['message' => 'メッセージです。']);
    }
}

こんな感じで記述すると、第2引数のキーであるmessageがviewテンプレート側で変数名として使用され、その変数にメッセージです。の値が用意される、という感じになります。

また、このreturn view()をスッキリしたコードにするためにcompact関数を使用することもお勧めです。

class SampleController extends Controller
{
    public function index()
    {
        $message = [
             'message' => 'メッセージです。'
        ];

        return view('index', compact('message') );
    }
}

view関数内に連想配列を書く必要がないので、見やすくなると思います。