Laravelでcontrollerからviewに渡す方法 - Hashimoto-Noriaki/laravel-php-memo GitHub Wiki

2022年05月01日投稿

はじめに

Laravel9でcontrollerからviewに変数を渡せたので共有します。

withを使う

変数を渡す時にまず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); 
    }

スクリーンショット 2022-05-01 19.13.44.png

compactを使う

ルーティングとviewは同じでcontrollerの部分だけ変わります。 ⚫︎controller

public function test(){
        $programming = 'Laravel学習';
        return view('home.index',compact('programming'));
    }

上と同じ出力結果です。

複数の値を送信

上は1つの値のみでしたが、複数の値を渡し方を書いていきます。

with

⚫︎ルーティング 上と変わらないのですが念のため記述します。

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,
        ]);
    }

スクリーンショット 2022-05-01 19.45.00.png

compact

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>

スクリーンショット 2022-05-01 20.32.29.png

最後に

postデータの送信やeloquentで取得したデータベースの値の送信などあるみたいですが、 この記事ではやらないので下の参考資料をみてください。

資料

https://qiita.com/ryo2132/items/63ced19601b3fa30e6de

https://pgmemo.tokyo/data/archives/1279.html

⚠️ **GitHub.com Fallback** ⚠️