Laravel踩坑笔记——illuminate/html被抛弃

起因

在使用如下代码的时候发生报错

{!! Form::open() !!}

  错误信息

[Symfony\Component\Debug\Exception\FatalErrorException]

Call to undefined method Illuminate\Foundation\Application::bindShared()

原因

在Stack Overflow找到相关问题(Call to undefined method Illuminate\Foundation\Application::bindShared()

由大家的回答和官方文档(Upgrade Guide)中可以知道,bindShared已经被抛弃

The actual issue is that L 5.1 has depreciated bindShared and illuminate still uses it. From the L5 upgrade page: The service container‘s bindShared method has been deprecated in favor of the singleton method.

--panthro

  

解决

打开config/app.php

移除以下句

providers中的
‘Illuminate\Html\HtmlServiceProvider‘

aliases中的
‘Form‘      => ‘Illuminate\Html\FormFacade‘,
‘HTML‘      => ‘Illuminate\Html\HtmlFacade

移除illuminate/html

composer remove illuminate/html
composer update

从官方文档我们可以看到,代替的包为laravelcollective/html

所以

安装laravelcollective/html

composer require laravelcollective/html

回到config/app.php

 加入如下语句

providers中的
Collective\Html\HtmlServiceProvider::class,

aliases中的
‘Form‘=>Collective\Html\FormFacade::class,
‘Html‘=>Collective\Html\HtmlFacade::class,

  问题解决

另外

1.本文写作时使用Laravel版本5.4,PHP版本5.6

2.附上Laravel关于Forms & HTML的文档(基于5.4)——laravelcollective/html

时间: 2024-12-14 02:12:27

Laravel踩坑笔记——illuminate/html被抛弃的相关文章

Laravel踩坑汇总(一)

[TOC] 大文件上传问题 问题 最近在做视频部分的功能,在上传视频的时候,遇到了一些问题,有文件上传信息,但是某些信息获取不到,比如: 123456789 public function store($request){ if($request->has('videos')){ $videos = $request->file('videos'); foreach($videos as $file){ dd($file->getRealPath(),$file->getPathN

laravel踩坑记:空字符转null

场景:手头的项目需要对外提供API服务,需要对请求数据进行签名校验.提交接口的数据会有''空字符值存在,laravel的Illuminate\Foundation\Http\Request接收到参数后,会将空字符强制转换为NULL,导致签名校验通不过. 经过一番努力,找到幕后黑手.Illuminate/Foundation/Http组件中有定义这个中间件.vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/Conv

docker 踩坑笔记之 psql: could not connect to server

最近在用docker跑rails,也遇到了一些坑,这里记录一下. 首先build项目: docker-compose build 然后就开始报错了: psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432&q

Laravel踩坑小记

背景:使用laravel项目的命令行惊现错误php artisan companyCustomerStatisticsCommand In Connection.php line 664: could not find driver (SQL: select max(`customer_id`) as aggregate from `statistic_customer`) 排查:1.浏览器直接访问项目,数据库均能正常访问2.浏览器查看phpinfo(), 获取到php版本信息 PHP Vers

React 踩坑笔记

props可以用两种理解,一是可以被当做构建React节点的参数,二是可以被理解为HTML标签的属性.具体如下 当props与一个已知HTML属性相同时,当他被加入最终DOM中的HTML元素时,它就是该元素的属性: 当被传入React.createElement()中当做参数时,也可以是React node实例里的各种值. 一些特殊的用法,比如说key.ref.dangerouslySetInnerHtml React Stateless Function Component(无状态函数组件)

Java踩坑笔记:ObjectIOStream与IOStream的各种装饰器(先挖个坑,以后再来详细填)

Java的序列化和ObjectStream真是一个大坑.. 先不说多线程环境下的问题,在单线程里,一个Socket只能保持一个ObjectOutputStream,原因好像是在于ObjectOutputStream有锁机制或是阻塞之类的东西,否则会导致接受方出现"StreamCorruptedException : invalid type code AC",同理ObjectInputStream也只能保持一个,否则接收方会出现header错误的相关异常. 据说原因是ObjectOut

appium 使用过程问题踩坑-笔记

问题1:虚拟设备选用问题 运行脚本抛出异常,创建session对象失败 排查过程:在进入cmd模式下: ①adb devices   --ok ②appium-doctor  --ok ③appium  --ok ④选择合适的虚拟设备 --解决问题 问题分析:某些虚拟机版本兼容性问题,导致无法获取虚拟机的信息,创建session对象失败

redis集群搭建踩坑笔记

推荐参考教程:https://blog.csdn.net/pucao_cug/article/details/69250101 错误: from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/local/redis-3.0.6/src/redis-trib.rb:25:in `<main>' 解决: gem install redis (最新) sudo gem install

laravel 踩坑 env,config

正常情况: env 方法 可以获取 .env 文件的值 config 可以获取 config 文件夹下 指定配置的值 非正常情况: 当我们执行了 php artisan config:cache 之后 在bootstrap/cache 文件夹下 会生成一个 config.php 文件 这个文件包含了 config 文件夹下的所有文件内容,并以文件名作为键值 同时把 .env 文件 根据特殊的解析方式,解析到 config.php 最终结果: env 无法获取到 .env 文件的值 config