【问题标题】:Route::controller() alternative in Laravel 5.3+Laravel 5.3+ 中的 Route::controller() 替代方案
【发布时间】:2017-01-08 14:15:15
【问题描述】:

我刚刚从 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() 是否已弃用,这些路线的替代方案是什么?

【问题讨论】:

    标签: laravel routing laravel-5.3


    【解决方案1】:

    你可以使用resource()。

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

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

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

      希望你觉得这很有用。

      【讨论】:

        【解决方案3】:

        明确的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');
        

        【讨论】:

        • 谢谢,解决了错误。我不得不删除'middleware'=>'auth'
        • @ArturGrigio 乐于助人
        • 好的,所以我知道隐式路由在 5.3 中消失了。是否有一个包仍然可以在某个地方启用它?或者我该怎么做才能把它带回来? - 没有讨论为什么我不应该这样做...... :)
        【解决方案4】:

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

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

        • 使用Route::controller 的隐式控制器路由已被弃用。请在您的路由文件中使用显式路由注册。这可能会被提取到一个包中。

        【讨论】:

        • 错过了 :( 非常感谢 :) 我的用例的显式路由是什么?
        • @ArturGrigio "请在您的路线文件中使用明确的路线注册。"
        猜你喜欢
        • 2017-01-14
        • 1970-01-01
        • 2014-06-23
        • 1970-01-01
        • 2013-05-26
        • 2020-01-27
        • 2013-10-13
        • 1970-01-01
        • 2020-07-10
        相关资源
        最近更新 更多