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の作成をしてみます。