Laravel 4 带控制器可选参数的Laravel路线

Laravel 4 带控制器可选参数的Laravel路线,laravel-4,routes,optional-parameters,Laravel 4,Routes,Optional Parameters,具有可选参数的管线在执行以下操作时起作用: Route::get('{anything}',function($anything){echo $anything;}); 但我想用一个控制器。这样做会产生错误: Route::get('{anything}','redirectController'); 控制器: class redirectController { public function index($anything){ echo $anything; }}

具有可选参数的管线在执行以下操作时起作用:

Route::get('{anything}',function($anything){echo $anything;});    
但我想用一个控制器。这样做会产生错误:

Route::get('{anything}','redirectController');
控制器:

class redirectController {

public function index($anything){
    echo $anything;
}} 
有什么问题吗?(使用laravel 4.2)

更新: 我用大写字母重命名了控制器,并尝试了以下操作:

Route::get('{anything}',['uses' => 'RedirectController@index']); 

但它仍然是一个错误:“调用未定义的方法RedirectController::getAfterFilters()”

如果要使用控制器,有两个选项:

  • Route::controller('Route','SomeController')
  • Route::get('Route',['uses'=>'SomeController@index']);
    在第一种情况下,您必须阅读以下内容:

    在这种情况下,操作的名称应该是
    getIndex
    ,而不仅仅是
    index

    祝你好运

    UPD

    确保控制器扩展了Laravel的控制器类,如下所示:

    use Illuminate\Routing\Controller;
    
    class SomeController extends Controller {
        ...
    }
    

    所以控制器函数应该是“getIndex”?。我尝试了Route::get({anything}',['uses'=>'RedirectController@index']); 但它不起作用……”RedirectController@index'表示它将使用
    RedirectController
    并调用
    index
    (在本例中不是
    getIndex
    )操作。请确保您的类名是
    RedirectController
    ,而不是
    RedirectController
    ,因为按照惯例,类名应该以大写字母开头。好的,我重命名了它。仅使用“索引”,对于答案的UPD部分仍然不起作用。我强烈建议您阅读文档。非常感谢!“扩展BaseController”解决了这个问题。我必须承认,我对拉雷维尔很陌生。