たまにController無しで ページを表示したい場合があります。
public ディレクトリに静的ページとして保存すればいいけれど、既存のテンプレートデザインを使いたいとか include したいとかの要望があるので ほとんど public 下に HTMLをおくことがありません。
とはいえ、そのためだけに Controller もしくは ルーティングで return View::make( 'hoge.index' ); とか書くのは面倒。
そんな時は こんな感じにControllerの base.php を書き換えちゃえばいいかも。
URLとViewの構成を同じにしてれば View下にファイルがあるか確認すれば表示するだけ。
application/controller/base.php
class Base_Controller extends Controller {
public function __call($method, $parameters)
{
$current = URI::current(); // 今のURL取る
// URLに相当する view ファイルがあるか確認
$path = path('app').'views/' .$current . '/index.blade.php';
if (file_exists($path)){
// あれば 表示
$view = str_replace('/','.',$current) . '/index';
$output = View::make( $view );
return Response::make($output, 200);
}
return Response::error('404');
}
}
もっと美しくかければいいんですが・・・。
自分メモ書きに近いのでお許しを