带有可选参数的路线在这样做时起作用:
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()”。
答案 0 :(得分:2)
如果您想使用控制器,可以选择两个选项:
Route::controller('route', 'SomeController');
Route::get('route', ['uses' => 'SomeController@index']);
; 在第一种情况下,你必须阅读:
http://laravel.com/docs/4.2/controllers#implicit-controllers
在这种情况下,您的操作名称应为getIndex
,而不仅仅是index
。
<强> UPD 强>
确保您的控制器扩展Laravel的Controller类,如下所示:
use Illuminate\Routing\Controller;
class SomeController extends Controller {
...
}