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”解决了这个问题。我必须承认,我对拉雷维尔很陌生。