Route::controller() alternative in Laravel 5.3+

时间:2016-08-31 21:00:24

标签: laravel routing laravel-5.3

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(),这些路线的替代方案是什么?

4 个答案:

答案 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()