Laravel

LaravelでViewに対してデータを送る方法

いつもご利用ありがとうございます。このブログは、広告費によって運営されています。

オススメ本
Web技術を勉強するなら、かなりオススメの雑誌です。毎月新しい発見があります。ついに最終号・・・、みなさん買いましょう!!
読んで損することはない名著。命名で悩むことが多い人はこの本がオススメです。

⇨ Laravel 記事の目次はこちら

Laravel で View に対してデータを送る方法について書いています。

環境

php artisan
Laravel Framework 8.83.4

結論から

    public function index()
    {
        $users = User::all();
        return view('welcome',['users'=>$users]);
    }

このように書けば welcome.blade.php で$users という変数を使うことができるようになります。

ピンと来ない人は以下のとおり手順を追ってみてください。

view に対してデータを送る方法とそのデータを表示させる

ルーティングを書く

Laravel8 のルーティングの基本的な書き方

routes/web.php

use App\Http\Controllers\HomeController;
Route::get('/', [ HomeController::class, 'index']);

コントローラーを作成する

コマンド

php artisan make:controller HomeController

app/Http/Controllers/HomeController が作成される

コントローラーに記述をする

ここでは、users のデータを取得する前提です。

記事をみている方は、欲しいデータを取得してください。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\User;

class HomeController extends Controller
{
    public function index()
    {
      //データを取得
        $users = User::all();

        //resources/views/welcome.blade.phpを指定
        return view('welcome',['users'=>$users]);
    }
}

解説

return view('welcome',['users'=>$users]);

データを渡す部分についてはここになります。

‘users’は、welcome.blade.php 内で使う変数名。

$users は、コントローラー内で取得したデータの変数となります。

つまり、

return view('welcome',['a'=>$users]);

としたら、welcome.blade.php では、

{{ $a }}

でデータを使うことができます。

別の書き方

少し省略した書き方

return view('welcome',compact('users'));

with を使う

return view('welcome')->with('users',$users);

まとめ

以上です。

感想・苦情は TwitterDM にご連絡ください。

それでは!

人気記事

PHP7.4 + Laravel6 のプロジェクトを AWS EC2 にデプロイする

【初心者向け】Laravel で投稿機能を作る方法(掲示板的なやつ)