Laravel从5.1错误升级到5.2.0

时间:2016-02-02 10:54:27

标签: laravel laravel-5 laravel-5.2

composer update命令上获取错误。

enter image description here

我的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"
    }
}

3 个答案:

答案 0 :(得分:38)

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

"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文件中,将其添加到您的提供者数组中:

Collective\Html\HtmlServiceProvider::class

这是你的别名数组:

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

可在此处找到文档:https://laravelcollective.com/docs/5.2/html

答案 1 :(得分:3)

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

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

<强> [编辑] 我认为您有自己的自定义代码需要更改的内容:$ this-&gt; app-&gt; bindShared()to:$ this-&gt; app-&gt; singleton()。

答案 2 :(得分:3)

我按照Link1 Link2

中提到的步骤解决了这个问题

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

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

相关问题