Laravelでルーティングからview表示をしてみる

Laravelでのroutes.phpの設定と、bladeを利用してview表示を行います。
いろいろな設定方法や記述方法がありますが、ここでは基本的な使い方(だと私が判断したもの)でやっていこうと思います。

今回は以下の流れで実装してみます。
・コントローラに処理の追加
・routes.phpの編集
・viewの作成

Controllerの作成

まずはコントローラを作成します。
MVCでいうところのCの部分ですね。

Laravelでは/app/controllersに配置されています。
今回はここ最初から用意されているHomeControllerを利用しつつ書き換えてみます。

<?php  
class HomeController extends BaseController {  
    public function index()  
    {  
        return View::make('home.index');  
    }  
}  

LaravelではBaseControllerを継承して独自のコントローラを作成します。
returnの部分で画面(View)を生成して返しています。

home.indexというのは/app/views/home/index.phpを読み込むという意味になります。
フォルダ階層は . でつなげていくようです。

ルーティング

laravelではアプリケーションルート直下にあるroutes.php(app/routes.php)を利用してルーティングを行います。
さっそく先ほど作成したコントローラのメソッドを呼んでみます。

<?php  
Route::get('/', 'HomeController@index');  

例えば、上記のように記述すると、アプリケーションのルートにgetでアクセスした際に、HomeControllerのindex関数を呼び出すようになります。
これによりアクセスに対する処理を振り分けていくのですね。

postの処理を指定したいときは、Route::postになります。
またroutes.phpに指定しなくてもある程度は命名規則でルーティングが可能なようです。
今回のケースではHomeControllerのindexメソッドをgetIndexとして、Routeの@以下を消しても、getIndexメソッドを呼び出すことができるっぽいです。

試してないのでなんとも言えませんが、たぶんpostならpost〜メソッドを呼んでgetならget〜メソッドを呼ぶなど、ある程度予想してルーティングしてくれるのでしょう。

Viewの作成

最後に表示する画面(View)を作成します。
今回は/app/viewsの直下にhomeというフォルダを新たに追加して、その中にindex.phpファイルを作成してみます。
パスはこのようになります。
/app/views/home/index.php

<html>  
  <head>  
    <title>this is test</title>  
  </head>  
  <body>  
    Hello Laravel!!  
  </body>  
</html>  

これで一旦簡単な動作確認ができたかと思います。
前回の記事とほぼ同じなので、あんまり価値はないですが改めてということで。

次回はbladeを利用したviewの作成をしてみます。