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

今回はMySQLのデータをLaravelで表示してみます。
membersというテーブルを作り、テストデーターが登録してあるので、そこからメンバー一覧(名前)を表示してみることにします。
・ルーターの設定
・コントローラーの設定
・ビューの設定
が主な作業内容になります。
LaravelとMySQLの準備は下記の記事を御覧ください。
[Laravel] MySQLのテーブル作成とテストデーター自動生成
コントローラー
artisanでコントローラーを作成
1 |
# php artisan make:controller MemberController |
Controllerの編集
app/Http/Controllers/MemberController.phpの編集
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?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の作成
タイトルとメンバーリストを表示します。
1 2 3 4 5 6 7 |
<h1>{{ $title }}</h1> <ul> @foreach ($members as $member) <li>{{ $member->name }}</li> @endforeach </ul> |
foreachを使ってデータがなくなるまで出力します。
ルーターの設定
routesのweb.phpに以下のコードを加えます。
「/member」にアクセスした時に Memberコントローラーのindexアクションを表示させる
1 |
Route::get('/member', 'MemberController@index'); |
データの表示
http://xxx.xxx.xxx.xxx:8000/memberにアクセス
これでLaravelでMySQLのデータを表示することができました。MVC(Model View Controller)の役割も学ぶことができます。
関連記事
- [Laravel] BelongsToで1対多のリレーション
- [Laravel] MySQLのテーブル作成とテストデーター自動生成
- [Laravel] MySQLと連動させてCRUDを作成する
- [Laravel] 利用頻度が高いコマンド一覧(artisan)
- [Laravel] インストールとMySQLの接続