【问题标题】:Laravel Upgrading To 5.2.0 From 5.1 errorLaravel 从 5.1 升级到 5.2.0 错误
【发布时间】:2016-05-11 03:22:26
【问题描述】:

收到composer update 命令的错误。

我的 composer.json 文件是:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.2.*",
        "illuminate/html": "^5.0",
        "barryvdh/laravel-debugbar": "~2.0",
        "spatie/laravel-paginateroute": "^2.0",
        "darkaonline/l5-swagger": "~2.0",
        "yajra/laravel-datatables-oracle": "~5.0",
        "phpoffice/phpexcel": "^1.8"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~4.0",
        "phpspec/phpspec": "~2.1",
        "symfony/dom-crawler": "~3.0",
        "symfony/css-selector": "~3.0"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "files": ["app/Helpers/helpers.php"],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "pre-update-cmd": [
            "php artisan clear-compiled"
        ],
        "post-update-cmd": [
            "php artisan optimize"
        ],
        "post-root-package-install": [
            "php -r \"copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist"
    }
}

【问题讨论】:

    标签: laravel laravel-5 laravel-5.2


    【解决方案1】:

    看看这个
    https://laracasts.com/discuss/channels/laravel/call-to-undefined-method-illuminatefoundationapplicationbindshared

    引用“bindShared 已重命名为 $app->singleton()”

    [编辑] 我认为你有一些东西是你自己的自定义代码需要从:$this->app->bindShared() 更改为:$this->app->singleton()。

    【讨论】:

      【解决方案2】:

      您需要删除这个过时的包(从核心中取出并且不再支持):

      "illuminate/html": "^5.0",
      

      当您删除它时,您还需要删除它的服务提供者/别名。因此,如果您打开config/app.php,您将看到提供者和别名部分。如果您还没有这样做,请删除这些代码行。

      'Illuminate\Html\HtmlServiceProvider'
      
      'Form'=> 'Illuminate\Html\FormFacade', 
      'HTML'=> 'Illuminate\Html\HtmlFacade',
      

      您应该安装 Laravel 集体包来代替它。要安装它,请将 illuminate/html 包替换为:

      "laravelcollective/html": "5.2.*"
      

      然后在您的 config/app.php 文件中,将其添加到您的 providers 数组中:

      Collective\Html\HtmlServiceProvider::class
      

      这是你的别名数组:

      'Form' => Collective\Html\FormFacade::class,
      'Html' => Collective\Html\HtmlFacade::class,
      

      文档可以在这里找到:https://laravelcollective.com/docs/5.2/html

      【讨论】:

      • 如果您仍然遇到错误,只需在版本号前添加一个插入符号:"laravelcollective/html": "^5.4.6"
      • 我在哪里放 "laravelcollective/html": "^5.4.6" ?
      【解决方案3】:

      我按照Link1Link2中提到的步骤解决了

      升级后,请确保在您当前的应用中更正 Link2 中提到的所有弃用。对我来说,Illuminate\Contracts\Routing\Middleware 必须从所有中间件中删除。

      我还必须安装某些软件包的最新版本,例如 "yajra/laravel-datatables-oracle": "~6.1.1",

      【讨论】:

        猜你喜欢
        • 2017-08-24
        • 2016-03-31
        • 2015-08-30
        • 2018-07-02
        • 1970-01-01
        • 2016-05-06
        • 2019-12-05
        • 2016-03-27
        • 2015-08-26
        相关资源
        最近更新 更多