我刚刚将Laravel从5.0升级到5.1。
我得到这个错误:
Call to undefined method IlluminateFoundationApplication::bindShared()
所以经过一些搜索后,我需要将bindShared更改为单例。
我可以在vendor/illuminate/html/HtmlServiceProvider.php中这样做
问题是,当另一个开发人员在项目上工作并执行编译器安装时,或者我将其部署到服务器上会发生什么。
如何将更改持久化到供应商文件夹中的文件?
好的,根据你的评论,我看到了你的问题(我应该早点注意到,因为你在你的问题中提到了HTML组件)。
illuminate/html
组件不再是Laravel的一部分,并且尚未更新以符合5.1标准。事实上,我很确定现在它已经被泰勒正式抛弃了。
然而,你可以用laravelcollective/html代替illuminate/html
的要求——这是官方社区对illuminate/html的接管,应该是一个直接的替代品。
不需要打乱vendor
的东西!
放弃Illuminate/html
。用Collective/html
代替。
要安装它,使用以下命令
composer require "laravelcollective/html":"^5.2.0"
然后在app/app.php文件中修改/添加如下内容
对于提供商
CollectiveHtmlHtmlServiceProvider::class
和别名
'Form' => CollectiveHtmlFormFacade::class,
'Html' => CollectiveHtmlHtmlFacade::class,
这个问题是由bindShared()方法引起的,只需将其更改为singleton()
文件位于:/projectname/vendor/illuminate/html/HtmlServiceProvider.php
更改第36行和第49行
以下Laravel特性已被弃用并将被弃用随着2015年12月发布的Laravel 5.2完全删除:…
服务容器的
bindShared
方法已被弃用singleton
方法. ...
裁判:https://laravel.com/docs/5.1/upgrade
因此,例如,从L5.1开始,您可以安全地更改:
$this->app->bindShared(UserObserver::class, function ()
{
// ...
});
:
$this->app->singleton(UserObserver::class, function ()
{
// ...
});
我是Rails开发人员&新旅行& &;这只是我的第一天,被困在这个表单生成器的问题。我已经通过了许多讨论和帖子,但得到了我的解决方案在https://laravelcollective.com/docs/5.0/html要使用刀片式表单生成器(form::open),我们需要更改我们的编写器。json,并在require块中添加"laravelcollective/html": "~5.0"
。然后运行composer update,因为只有新的依赖项才会对你的项目可用。现在在config/app.php中添加"CollectiveHtmlHtmlServiceProvider",在providers block中添加
'aliases' => [
// ...
'Form' => 'CollectiveHtmlFormFacade',
'Html' => 'CollectiveHtmlHtmlFacade',
// ...
],
在config/app.php中的别名块
运行PHP工匠服务