【Laravel5】Routing, Controllers, Viewsの関係

Route 66

【Laravel5】Routing, Controllers, Viewsの関係

A Gentle Introduction to Routing, Controllers, and Views – Laravel 5 Fundamentalsを元に付加情報をつけて記載しています。

公式ドキュメントでの説明はこちら。

GitHubにサンプルプロジェクトを追加しました。

<

p>ryo-ogata/learning-laravel-5

ディレクトリ構造などはGitHubのほうを参照したほうが早いと思いますので参考程度に。一応、本記事用のブランチを切ってあります。

構成を見る

Laravel5のRouting, Controllers, Viewsは基本的なWebページを出力するために、欠かせない概念です。他のフレームワークに比べて、とてもわかりやすいディレクトリ構造やコードとなっています。まずはどのようにこの3つの仕組みが動作しているのか紹介したいと思います。

Routing

  • app/Http/routes.php

    まずはルーティングを定義するためのファイルです。ここでいうルーティングとは、URLとControllerメソッドとの紐付けです。
    すでに何個か書かれています。

    これはGETメソッドでhttp://localhost:8000/にアクセスした際に動作するControllerとそのメソッドを定義しています。

Controllers

  • app/Http/Controllers/WelcomeController.php

    ここにindex()メソッドが定義されています。とてもシンプルです。
    一部省略しています。

Views

  • resources/views/

    ここにHTMLを配置してあります。Controllerメソッドで上記のようにすると、Viewはresources/views/welcome.blade.phpをテンプレートファイルとして読み込んだ後、Httpレスポンスとして返却します。

    このControllerの戻り値とViewの参照ファイル決定方法には以下のようにいくつかパターンがあります。

    • return view(‘welcome’); –> resources/views/welcome.blade.php
    • return view(‘resources/views/welcome.blade.php’); –> resources/views/welcome.blade.php
    • return view(‘pages.contact’); –> resources/views/pages/contact.blade.php

実際に作ってみる

<

p>Getリクエストを処理する新しいコントローラメソッドを追加します。

ControllerからViewへの値の受け渡しを実装します。

Routing

  • app/Http/routes.php

    以下のGETリクエストを追加します。

Controller

  • app/Http/Controllers/WelcomeController.php

    以下のメソッドを追加します。

View

  • resources/views/pages/contact.blade.php

    HTMLファイルを追加します。

確認する

http://localhost:8000/contact/にブラウザからアクセスし、以下のようなページが表示されれば成功です。

Laravel5-12

まとめ

Routeing, Controllers, Views を簡単に追加することができました。他のフレームワークの経験をもつWebエンジニアであれば、すんなりと理解できる形ではないかと思います。

次回は、ControllerとViewのあいだの値の受け渡しを行います。

Comments are closed, but trackbacks and pingbacks are open.