Laravelでcontrollerからviewに渡す方法 - Hashimoto-Noriaki/laravel-php-memo GitHub Wiki
2022年05月01日投稿
Laravel9でcontrollerからviewに変数を渡せたので共有します。
変数を渡す時にまずcompactを使いました。
⚫︎ルーティング
Route::get('/test', [App\Http\Controllers\TaskController::class, 'test']);
⚫︎view
<html>
<body>
<h1>{{$programming}}</h1>
</body>
</html>
⚫︎controller
public function test(){
$programming = 'Laravel学習';
return view('home.index')->with('programming',$programming);
}
ルーティングとviewは同じでcontrollerの部分だけ変わります。 ⚫︎controller
public function test(){
$programming = 'Laravel学習';
return view('home.index',compact('programming'));
}
上と同じ出力結果です。
上は1つの値のみでしたが、複数の値を渡し方を書いていきます。
⚫︎ルーティング 上と変わらないのですが念のため記述します。
Route::get('/test', [App\Http\Controllers\TaskController::class, 'test']);
⚫︎view
<html>
<body>
<h1>{{$programming_1}}</h1>
<h1>{{$programming_2}}</h1>
<h1>{{$programming_3}}</h1>
</body>
</html>
⚫︎Controller
public function test(){
$programming_1 = 'Laravel学習';
$programming_2 = 'Rails学習';
$programming_3 = 'React学習';
return view('home.index')->with([
"programming_1" => $programming_1,
"programming_2" => $programming_2,
"programming_3" => $programming_3,
]);
}
compactでもみていきます。
public function test(){
$programming_1 = 'Laravel学習';
$programming_2 = 'Rails学習';
$programming_3 = 'React学習';
return view('home.index',compact('programming_1','programming_2','programming_3'));
}
ルーティングとviewは同じで出力結果も同じです。
withを使って配列で複数の値を渡す時は連想配列で渡します。 上の複数の値をwithで渡すのと同じです。
compactを使った方法を記述します。
public function test()
{
$programming_array = ['Laravel学習','Rails学習','React学習'];
return view('home.index',compact('programming_array'));
}
<html>
<body>
<h1>{{$programming_array[0]}}</h1>
<h1>{{$programming_array[1]}}</h1>
<h1>{{$programming_array[2]}}</h1>
</body>
</html>
postデータの送信やeloquentで取得したデータベースの値の送信などあるみたいですが、 この記事ではやらないので下の参考資料をみてください。