【Laravel】スケジュール一覧を表示する

前回までの様子はこちら

最新ソースはこちら

https://github.com/takishita2nd/hotel-mng

今回はスケジュール一覧を表示させたいと思います。

まずはルーティング。

Route::get('/management/schedule', 'RegisterManagementController@schedule');

コントローラー。

    /**
     * スケジュール表示
     */
    public function schedule()
    {
        return view('register.schedule', ['Lists' => $this->registerManagement->getSchedule()]);
    }

リポジトリ。

予約名はテーブルが違うので、リレーションを使って参照します。

リレーション便利。

    /**
     * スケジュール一覧を取得する
     */
    public function getSchedule()
    {
        $lists = array();
        $index = 0;
        $models = ReserveDayList::get();
        foreach($models as $model)
        {
            $lists[$index] = array('day' => $model->day, 'name' => $model->reserveManagements()->first()->name);
            $index++;
        }
        return $lists;
    }

ビュー。

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row">
        <div class="col-md-8 col-md-offset-2">
            <div class="panel panel-default">
                <div class="panel-heading">スケジュール</div>

                <div class="panel-body">
                    <table>
                        <tr>
                            <th>日時</th>
                            <th>名前</th>
                        </tr>
                    @foreach ($Lists as $list)
                        <tr>
                            <td>{{ $list['day'] }}</td>
                            <td>{{ $list['name'] }}</td>
                        </tr>
                    @endforeach
                    </table>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

今回はいろいろ手こずった割には、コード自体はあっさりしたという。

ビュー側がオブジェクトじゃなくて、連想配列だったのが落とし穴だったわ。

でも、システムとしてはまだまだ足りないところがあるので、そこを対応していきます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください