LoginSignup
7
8

More than 5 years have passed since last update.

laravel3:ControllerなしでView表示

Last updated at Posted at 2013-04-10

たまに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');
 }
}

もっと美しくかければいいんですが・・・。
自分メモ書きに近いのでお許しを

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8