[Laravel] MySQLのデータをLaravelで表示してみる

今回はMySQLのデータをLaravelで表示してみます。
membersというテーブルを作り、テストデーターが登録してあるので、そこからメンバー一覧(名前)を表示してみることにします。
・ルーターの設定
・コントローラーの設定
・ビューの設定
が主な作業内容になります。

LaravelとMySQLの準備は下記の記事を御覧ください。
[Laravel] MySQLのテーブル作成とテストデーター自動生成

コントローラー

artisanでコントローラーを作成

# php artisan make:controller MemberController

Controllerの編集

app/Http/Controllers/MemberController.phpの編集

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class MemberController extends Controller
{
    public function index()
    {
        $members = DB::select('select * from members');
        $data = ['title' => 'メンバーリスト', 'members' => $members];
        return view('members.index', $data);
    }
}

membersのDBをセレクトして、取得されるデータを$membersに代入。
$dataという変数を作り、そこにtitleとmembersの2つの値を設定。
これを/resources/view/members/indexで$dataとして受け取れるようにします。

Viewの作成

タイトルとメンバーリストを表示します。

<h1>{{ $title }}</h1>
 
<ul>
    @foreach ($members as $member)
    <li>{{ $member->name }}</li>
    @endforeach
</ul>

foreachを使ってデータがなくなるまで出力します。

ルーターの設定

routesのweb.phpに以下のコードを加えます。
「/member」にアクセスした時に Memberコントローラーのindexアクションを表示させる

Route::get('/member', 'MemberController@index');

データの表示

http://xxx.xxx.xxx.xxx:8000/memberにアクセス
2020-04-12_17h09_45

これでLaravelでMySQLのデータを表示することができました。MVC(Model View Controller)の役割も学ぶことができます。



Author: webmaster