メッセージ一覧の表示

まずは、前章までで学習したことを元に 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

メッセージ一覧の確認

では、ここまでの内容を確認してみましょう。

http://localhost/messages

(Docker Toolboxの場合は http://(dockerのipアドレス)/messages )

にアクセスして、messagesテーブル内の一覧が表示されればOKです。 うまくいかない場合にはエラーメッセージなどをよく確認して おかしいところがないか確認してみましょう。

results matching ""

    No results matching ""