Laravel路由带有可选参数到控制器

时间:2015-06-26 03:12:34

标签: laravel-4 routes optional-parameters

带有可选参数的路线在这样做时起作用:

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()”。

1 个答案:

答案 0 :(得分:2)

如果您想使用控制器,可以选择两个选项:

  1. Route::controller('route', 'SomeController');
  2. Route::get('route', ['uses' => 'SomeController@index']);;
  3. 在第一种情况下,你必须阅读:
    http://laravel.com/docs/4.2/controllers#implicit-controllers

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

    祝你好运!

    <强> UPD

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

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