Help us understand the problem. What is going on with this article?

Laravel 一覧を表示+デバック

Laravelでブログの一覧を表示する機能を実装していきます。今回はブログの一覧を表示します。
前提条件として、Blogモデル,【Seeders,Factory】を使ったテストデータが存在することとします。

流れ

下記の流れに沿ってDB内の情報を表示できるようにします。
1. Blog Modelを呼び出す
2. controllerからbladeに渡す
3. bladeでブログデータを表示

1. Blog Modelを呼び出す + 2.controllerからbladeに渡す

Blogモデルをcontrollerを使って呼び出します。

controller.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Blog;//BlogModelを使っている

class BlogController extends Controller
{
    /*
     *ブログ一覧を表示する
     *
     * @return view
     */
    public function showList()
    {
      $blogs = Blog::all();//ブログの一覧を取得
      return view('blog.list',['blogs' => $blogs]);//ブログの一覧を配列で渡してあげる
    }
}

デバック

Laravelのメソッドでデバックを行ってくれる物があります。こちらを使って上記でDBからどのような情報が送られてきたのかを確認してみましょう。コマンドは以下になります。

dd(確認したい変数名);

上記のコマンドで変数の中身を確認してくれます。またこのコマンドを記載した場所で処理を止めてくれます。

controller.php
public function showList()
    {
      $blogs = Blog::all();
      dd($blogs);//ここで処理を止めて中身を確認してくれる
      return view('blog.list',['blogs' => $blogs]);
    }

localhostにアクセスすると、このように表示してくれます。一つ一つの詳細もクリックすると表示してくれます。中身が確認できたら、dd();は」削除しておきましょう。
image.png

Bladeで表示する

取得した値をforeach文で表示していきます。上のリストのように情報が入るように実装していきます。先ほどのモデルクラスはオブジェクトになりますので、アロー演算子を使って(id,update_at,title,content)を呼び出していきます。

blade.blog.php
<tr>
                <th>記事番号</th>
                <th>日付</th>
                <th>タイトル</th>
                <th></th>
            </tr>
            @foreach($blogs as $blog)
            <tr>
                <td>{{ $blog->id }}</td>
                <td>{{ $blog->update_at}}</td>
                <td>{{ $blog->title }}</td>
                <td>{{ $blog->content }}</td>
            </tr>
            @endforeach

以上で以下のように表示されると思います。
image.png

終わりに

参考サイト
https://techacademy.jp/magazine/19296
https://www.youtube.com/watch?v=Flz9J7ojNdk

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away