【Laravel5】Model, Controller, Viewワークフロー

【Laravel5】Model, Controller, Viewワークフロー

はじめに

Basic Model/Controller/View Workflow – Laravel5 Fundamentalsを元に付加情報をつけて記載しています。

GitHubにサンプルプロジェクトがあります。

ryo-ogata/learning-laravel-5

ModelとControllerを実装してみる

前回までの記事で、Model/Controller/Viewのそれぞれを動作させることができました。

今回はそれらを元に、今回はWebページらしく一覧画面と、詳細画面を実装していきたいと思います。

  1. Routingを追加する。
    • app/Http/routes.php

  2. Controllerを追加する。

    php artisan make:controller ArticlesController –plain

    • app/Http/Controllers/ArticlesController.php

  3. 確認してみる。

    http://localhost:8000/articles

    以下のようなレスポンスが返ってきます。

Viewを実装する

Model/Controllerだけでは画面は構成できません。これからさきほど返却されたJSONをViewに受け渡しHTMLを構成していきます。

  1. ControllerがViewを返すようにする
    • app/Http/Controllers/ArticlesController.php

  2. Viewを追加する
    • resources/views/article/index.blade.php

  3. 確認する

    http://localhost:8000/articles

    これでArticle一覧画面が完成しました。

詳細画面を追加する

一覧画面が完成したので、次は詳細画面を実装します。

  1. Routingを追加する。
    • app/Http/routes.php

      パスの末尾にある{id}は、そこに指定された値をキャプチャーしてControllerに引き渡すことができます。

  2. Controllerにメソッドを追加する。

    • app/Http/Controllers/ArticlesController.php

  3. 詳細画面のViewを追加する。
    • resources/views/article/show.blade.php

  4. 確認する

    http://localhost:8000/article/1

    【Laravel5】Model, Controller, Viewワークフロー
    【Laravel5】Model, Controller, Viewワークフロー

    これでArticle詳細画面が完成しました。

  5. 一覧画面から詳細画面へのリンクを貼る。

    一覧画面から詳細画面へ遷移します。詳細画面へのパスをhref属性に書き加えます。

    • resources/views/article/index.blade.php

番外編

  • href属性の別の書き方
    1. resources/views/article/index.blade.php

    2. resources/views/article/index.blade.php

  • エラー画面

    たとえば以下のようなURLにアクセスすると、今のところエラー画面になるはずです。

    http://localhost:8000/articles/100

    【Laravel5】Model, Controller, Viewワークフロー
    【Laravel5】Model, Controller, Viewワークフロー

    このようにエラートレースが画面に表示されてしまっています。これは今の設定がデバッグモードであるために起こります。本番環境など、これを回避したい場合には、以下のように設定を変更します。

    • config/app.php

 まとめ

Articleモデルをつかって、記事の一覧画面から詳細画面へ遷移するWebページを実装しました。

次は登録フォームについて紹介したいと思います。

Comments are closed, but trackbacks and pingbacks are open.