7

我刚刚从 Laravel 5.2 升级到 5.3。我正在为我的应用程序中的几个表使用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

4 回答 4

8

明确的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');
于 2016-08-31T22:40:43.597 回答
7

我和你有同样的问题,没有一个替代方案(显式声明或发布)足够好。还有一些替代方案需要更改太多代码。

这就是为什么我编写了一个名为 AdvancedRoute 的类,作为替代品。

只需将 Route::controller 替换为 AdvancedRoute::controller 即可使用,如下所示:

AdvancedRoute::controller('users','UserController');

GitHub 存储库中有关如何安装和使用 find 的完整信息:

https://github.com/lesichkovm/laravel-advanced-route

希望您觉得这个有帮助。

于 2016-11-20T07:44:42.007 回答
2

https://laravel.com/docs/5.3/upgrade#upgrade-5.3.0

以下功能在 5.2 中已弃用,并将在 2016 年 6 月的 5.3 版本中删除:

  • 隐式控制器路由使用Route::controller已被弃用。请在您的路由文件中使用显式路由注册。这可能会被提取到一个包中。
于 2016-08-31T21:05:20.787 回答
0

您可以使用资源()。

Route::resource('users','UserController');

注意:不需要“get”前缀。getIndex()=index()

于 2017-03-26T11:21:22.773 回答