Laravel 3-从扩展基本控制器的控制器扩展


Laravel 3 - Extending from a controller that extends the Base controller

为什么要获得

Class 'Search_Controller' not found

执行此操作时:

class Snippets_Controller extends Search_Controller {
public $restful = true;
public function get_index()
{
    $snippets = Snippet::all();
    $categories = Categorie::all();
    return View::make('snippet.index')->with(array(
        'snippets' => $snippets,
        'categories' => $categories,
        'active_categorie' => Session::get('active_categorie_id')
        )
    );
}

搜索控制器:

class Search_Controller extends Base_Controller {
    protected static function build_html_for_search_results($search_results)
    {
...

您应该将其自动加载到应用程序start.php文件夹中。如果你打开该文件,搜索"Base_Controller",你会看到这样的内容:

Autoloader::map(array(
    'Base_Controller'       => path('app').'controllers/base.php'
));

你唯一要做的就是在那里添加搜索控制器:

Autoloader::map(array(
    'Base_Controller'       => path('app').'controllers/base.php',
    'Search_Controller'     => path('app').'controllers/search.php'
));

这应该会奏效。

Laravel根据请求的名称加载控制器,并且不会自动加载任何控制器,因为这对90%的控制器来说都是浪费时间。