调用未定义的方法Illuminate\Foundation\Application :: bindShared()

pan*_*hro 14 laravel composer-php laravel-5

我刚刚将Laravel从5.0升级到5.1.

我收到此错误:

Call to undefined method Illuminate\Foundation\Application::bindShared()
Run Code Online (Sandbox Code Playgroud)

所以经过一些搜索我需要将bindShared更改为单例.

我可以在vendor/illuminate/html/HtmlServiceProvider.php中执行此操作

问题是,当另一个开发人员在项目上工作并执行编写器安装或部署到服务器时会发生什么.

如何将更改保留在供应商文件夹中的文件?

ale*_*ell 26

好的,根据您的评论,我看到了您的问题(我应该在您提出问题中的HTML组件时尽快注意到它.

illuminate/html组件不再是Laravel本身的一部分,并且尚未更新以符合5.1标准.事实上,我很确定它现在被泰勒正式抛弃了.

但是,您可以illuminate/html使用laravelcollective/html替换该要求- 这是官方社区对illuminate/html的接管,应该是替代品.

不必乱用东西vendor!


Md.*_*man 8

Illuminate/html被遗弃了.请Collective/html改用.

要安装它,请使用以下命令

composer require "laravelcollective/html":"^5.2.0"
Run Code Online (Sandbox Code Playgroud)

然后在app/app.php文件中更改/添加如下
提供者

Collective\Html\HtmlServiceProvider::class
Run Code Online (Sandbox Code Playgroud)

和别名

'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
Run Code Online (Sandbox Code Playgroud)