Route::controller() Laravel 5.3+ 中的备选方案
Route::controller() alternative in Laravel 5.3+
我刚从 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()
是否已弃用,这些路由的替代方案是什么?
https://laravel.com/docs/5.3/upgrade#upgrade-5.3.0
The following features are deprecated in 5.2 and will be removed in the 5.3 release in June 2016:
- Implicit controller routes using
Route::controller
have been deprecated. Please use explicit route registration in your routes file. This will likely be extracted into a package.
显式 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');
我遇到了和你一样的问题,none 的备选方案(显式声明或发布)已经足够好了。还有一些替代方案需要更改太多代码。
这就是为什么我写了一个 class 称为 AdvancedRoute 的原因,它用作替代品。
只需将 Route::controller 替换为 AdvancedRoute::controller 即可使用,如下所示:
AdvancedRoute::controller('users','UserController');
有关如何安装和使用 find 的完整信息,请参见 GitHub 存储库,网址为:
https://github.com/lesichkovm/laravel-advanced-route
希望你觉得这有用。
您可以使用 resource()。
Route::resource('users','UserController');
注意:不需要 "get" 前缀。 getIndex()
= index()
我刚从 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()
是否已弃用,这些路由的替代方案是什么?
https://laravel.com/docs/5.3/upgrade#upgrade-5.3.0
The following features are deprecated in 5.2 and will be removed in the 5.3 release in June 2016:
- Implicit controller routes using
Route::controller
have been deprecated. Please use explicit route registration in your routes file. This will likely be extracted into a package.
显式 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');
我遇到了和你一样的问题,none 的备选方案(显式声明或发布)已经足够好了。还有一些替代方案需要更改太多代码。
这就是为什么我写了一个 class 称为 AdvancedRoute 的原因,它用作替代品。
只需将 Route::controller 替换为 AdvancedRoute::controller 即可使用,如下所示:
AdvancedRoute::controller('users','UserController');
有关如何安装和使用 find 的完整信息,请参见 GitHub 存储库,网址为:
https://github.com/lesichkovm/laravel-advanced-route
希望你觉得这有用。
您可以使用 resource()。
Route::resource('users','UserController');
注意:不需要 "get" 前缀。 getIndex()
= index()