Cloud and IT Design Project




Laravel 5 コントローラーを触ってみた

Category : Laravel5 · by 2月 11th, 2015
この記事はLaravel 5 リリース後のLaravel Framework version 5.0を元に記載しています。

Laravelを利用する際は、なるべくフレームワークに準拠した名前で命名するのが最初は楽です。変えることもできますが、最初は郷に入ったら郷に従えと。

それでは、Laravelフレームワークに沿ってコントローラーを作る場合、
FooController
Fooが固有の名前+Controllerと名付けましょう。
それではatrisan先生にひな形を生成してもらいます。

php artisan make:controller FooController

すると、app/Http/Cotrollers/FooController.phpができるので、
適宜修正します。L4と比べると、名前空間の記載が必要なので、use〜というのが増えてますね。fooという名前でViewを作ってみます。色々な機能(REST)がデフォルトで入ってきますが、今回はindexだけを作ってみます。
indexとは、http://hostname/foo/ を開いた場合になります。

viewでは、fooはコントローラーで付けた名前で、小文字で指定します。

<?php namespace App\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

class FooController extends Controller {

     /**
      * Display a listing of the resource.
      *
      * @return Response
      */
     public function index()
     {
          return view('foo');
     }

}

コントローラーが出来たら、ルーティングを設定します。ルーティングとは、/foo/でアクセスしたときの参照先である、FooController.phpを指定します。
app/Http/routes.phpを編集します。

以下を追加します。http://hostname/foo/でアクセスしたとき、
FooControllerクラス(FooController.php)を参照すると言う意味です。
routes.phpの使い方は、L4と基本同じです。

Route::resource('foo','FooController');

さて、これで、viewをつくってみましょ。
まずは、簡単にHTMLを表示する例です。
app/resources/views/foo.blade.php
を作成します。
L5には、bootstrapテンプレートが最初から入っているので、テンプレートを拝借してみます。

@extends('app')

@section('content')
<div class="container">
     <div class="row">
          <div class="col-md-10 col-md-offset-1">
               <div class="panel panel-default">
                    <div class="panel-heading">Fooのテスト</div>

                    <div class="panel-body">
                         こんにちは、fooです。表示してまっか?
                    </div>
               </div>
          </div>
     </div>
</div>
@endsection

問題無ければ表示されるはずです。

SHARE :