Laravelでブログの一覧を表示する機能を実装していきます。今回はブログの一覧を表示します。
前提条件として、Blogモデル,【Seeders,Factory】を使ったテストデータが存在することとします。
流れ
下記の流れに沿ってDB内の情報を表示できるようにします。
1. Blog Modelを呼び出す
2. controllerからbladeに渡す
3. bladeでブログデータを表示
1. Blog Modelを呼び出す + 2.controllerからbladeに渡す
Blogモデルをcontrollerを使って呼び出します。
<?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(確認したい変数名);
上記のコマンドで変数の中身を確認してくれます。またこのコマンドを記載した場所で処理を止めてくれます。
public function showList()
{
$blogs = Blog::all();
dd($blogs);//ここで処理を止めて中身を確認してくれる
return view('blog.list',['blogs' => $blogs]);
}
localhostにアクセスすると、このように表示してくれます。一つ一つの詳細もクリックすると表示してくれます。中身が確認できたら、dd();
は」削除しておきましょう。
Bladeで表示する
取得した値をforeach文で表示していきます。上のリストのように情報が入るように実装していきます。先ほどのモデルクラスはオブジェクトになりますので、アロー演算子を使って(id,update_at,title,content)を呼び出していきます。
<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
終わりに
参考サイト
https://techacademy.jp/magazine/19296
https://www.youtube.com/watch?v=Flz9J7ojNdk