I just upgraded from Laravel 5.2 to 5.3. I am using Laravel-DataTables个包。
升级后我运行artisan serve
我收到了:
[BadMethodCallException]
Method controller does not exist.
我已在routes.php
(现在web.php
)
Route::controller('datatables', 'ProfileController', [
'anyOrders' => 'datatables.dataOrders',
'anyProperties' => 'datatables.dataProperties',
]);
这是为DataTables Documentation路由查询的建议方法。
是否已弃用Route::controller()
,这些路线的替代方案是什么?
答案 0 :(得分:7)
明确的routes
将是:
Route::get('/datatables/orders', array('middleware' => 'auth', 'uses' => 'ProfileController@anyOrders'))->name('datatables.dataOrders');
Route::get('/datatables/properties', array('middleware' => 'auth', 'uses' => 'ProfileController@anyProperties'))->name('datatables.dataProperties');
答案 1 :(得分:6)
我和你有同样的问题,没有其他选择(明确的声明或发布)足够好。还有一些替代方案需要更改太多的代码。
这就是为什么我写了一个名为AdvancedRoute的类,它可以作为替代品。
只需将Route :: controller替换为AdvancedRoute :: controller就可以使用它,如下所示:
AdvancedRoute::controller('users','UserController');
完整信息如何在GitHub仓库中安装和使用find:
https://github.com/lesichkovm/laravel-advanced-route
希望你觉得这很有用。
答案 2 :(得分:2)
https://laravel.com/docs/5.3/upgrade#upgrade-5.3.0
以下功能在5.2中已弃用,将在2016年6月的5.3版本中删除:
- 已弃用使用
Route::controller
的隐式控制器路由。请在路线文件中使用显式路线注册。这可能会被提取到一个包中。
答案 3 :(得分:0)
您可以使用resource()。
UINavigationController
注意:不需要“get”前缀。 Route::resource('users','UserController');
= getIndex()