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
問題無ければ表示されるはずです。
最近のコメント