Laravel 带有可选参数的路由到控制器
Laravel route with optional parameter to controller
具有可选参数的路由在这样做时有效:
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']);
但还是报错:"Call to undefined method RedirectController::getAfterFilters() ".
如果您想使用控制器,有两种选择:
Route::controller('route', 'SomeController');
Route::get('route', ['uses' => 'SomeController@index']);
;
在第一种情况下,您必须阅读以下内容:
http://laravel.com/docs/4.2/controllers#implicit-controllers
在这种情况下,您的操作名称应该是 getIndex
,而不仅仅是 index
。
祝你好运!
UPD
确保您的控制器扩展了 Laravel 的控制器 class,如下所示:
use Illuminate\Routing\Controller;
class SomeController extends Controller {
...
}
具有可选参数的路由在这样做时有效:
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']);
但还是报错:"Call to undefined method RedirectController::getAfterFilters() ".
如果您想使用控制器,有两种选择:
Route::controller('route', 'SomeController');
Route::get('route', ['uses' => 'SomeController@index']);
;
在第一种情况下,您必须阅读以下内容:
http://laravel.com/docs/4.2/controllers#implicit-controllers
在这种情况下,您的操作名称应该是 getIndex
,而不仅仅是 index
。
祝你好运!
UPD
确保您的控制器扩展了 Laravel 的控制器 class,如下所示:
use Illuminate\Routing\Controller;
class SomeController extends Controller {
...
}