laravel 4:总是第四个控制器方法不起作用 - >空白页面

时间:2014-07-09 16:39:04

标签: php laravel-4

我所有控制器的前三个方法都运行良好,但是当我添加第四个方法时,这个方法不起作用(不包括构造方法)并给我一个空白页面,其中包含控制器动作的URL。登记/> 我的控制器类:

class StoreController extends BaseController{

    public function __construct(){
        parent::__construct();
        $this->beforeFilter('csrf', ['on'=>'post']);
    }

    public function getIndex(){
        return View::make('store.index', ['products'=>Product::take(4)->orderBy('created_at','DESC')->get()]);
    }

    public function getView($id){
        return View::make('store.view', ['product'=>Product::find($id)]);
    }

    public function getCategory($cat_id){
        return View::make('store.category', [
            'products'=>Product::where('category_id','=',$cat_id)->paginate(6),
            'category'=>Category::find($cat_id)]);
    }

    public function getSearch(){
        $keyword=Input::get('keyword');
        return View::make('store.search', [
            'products'=>Product::where('title','LIKE','%'.$keyword.'%')->get(),
            'keyword'=>$keyword]);
    }

}   

在我的route.php文件中:

Route::controller('store', 'Storecontroller');

行动的触发器形式是:

<div id="search-form">
                    {{ Form::open(['url'=>'store/search', 'method'=>'get']) }}
                        {{ Form::text('keyword', null, ['placeholder'=>'Search by keyword', 'class'=>'search']) }}
                        {{ Form::submit('Search', ['class'=>'search submit']) }}
                    {{ Form::close() }}

正如我所说的getSearch方法不起作用,我给了一个空白页面,其中包含动作的url(不是返回的视图)

感谢

1 个答案:

答案 0 :(得分:0)

由于页面为空白,请确保您的应用配置中的debug设置为true(应该是最顶层的设置,最好是local dir })。这意味着当发生错误时,您将看到一个错误页面,其中包含详细的堆栈跟踪和错误消息,使您可以更轻松地调试应用程序。

确保视图store.search存在,命名正确(检查拼写错误)并包含您需要显示$products的html / php。

接下来,您有两种可能性:

  1. 设置keyword输入的默认值

    // For example:
    
    Input::get('keyword', 'default')
    
  2. 检查是否有指定的关键字

    // For example:
    
    if (Input::has('keyword')) {...} else {...}
    
  3. 作为旁注: 您不应该像在此处一样在数组内执行(繁重)任务。将它们放在变量中,并将它们包含在视图数组中,就像使用关键字变量一样。您的代码也将更易读和可维护。关于这一点还有很多,但这就是重点。

    如果这有助于你,请告诉我。