メッセージ一覧の表示
まずは、前章までで学習したことを元に message の一覧を表示してみましょう。
ルーティングの設定
まずはルーティングからスタートします。
web.php
Route::get('/messages', 'MessagesController@index');
今回は、今まで利用していたsampleコントローラの代わりに、 Messageモデルを扱うためのコントローラ、MessageControllerを利用します。
コントローラの生成、設定
続いて、artisanコマンドでコントローラを生成します。
php artisan make:controller MessagesController
上記のコマンドを実行すると sample_app/app/Http/Controllers/ ディレクトリに MessagesController.php が生成されます。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class MessagesController extends Controller
{
//
public function index(){
$title = 'シンプルな掲示板';
// Messageモデルを利用してmessageの一覧を取得
$messages = \App\Message::all();
// views/messages/index.blade.phpを指定
return view('messages.index',[
'title' => $title,
'messages' => $messages,
]);
}
}
上記のようにindexアクションの追記を行いましょう。
viewの作成
続いて、view用のbladeテンプレートを用意します。 views直下のファイルが多すぎると見にくくなるので、 sample_app/resources/views/ ディレクトリ内に messagesディレクトリを作成しましょう。 さらに、このmessagesディレクトリに index.blade.php を作成します。
index.blade.php
@extends('layouts.default')
@section('title', $title)
@section('content')
<h1>{{ $title }}</h1>
<ul>
@forelse($messages as $message)
<li>{{ $message->name }}: {{ $message->body }} {{ $message->created_at }}</li>
@empty
<li>メッセージはありません。</li>
@endforelse
</ul>
@endsection
メッセージ一覧の確認
では、ここまでの内容を確認してみましょう。
(Docker Toolboxの場合は http://(dockerのipアドレス)/messages )
にアクセスして、messagesテーブル内の一覧が表示されればOKです。 うまくいかない場合にはエラーメッセージなどをよく確認して おかしいところがないか確認してみましょう。