我已经在我的网站上实现了奎尔的所见即所得编辑。有了这一点,我还想要一个图像大小,许多人推荐这个组件。我还安装了PHP Quill Renderer来将Quill的Delta转换成HTML。
我测试了所有的东西,它运行得很好(我从渲染器收到的数据与我在表单中发布的数据相对应)。
但是,如果我在Quill编辑器中调整了图像的大小并将其发送给呈现器,我将得到以下错误:
Fatal error: Uncaught TypeError: Argument 1 passed to DBlackborough\Quill\Delta\Html\Insert::__construct() must be of the type string, array given, called in ...... on line 22我检查了该文件,该函数位于第22行:
public function __construct(string $insert, array $attributes = [])
{
$this->tag = null;
$this->insert = $insert;
$this->attributes = $attributes;
}作为这一切的初学者,我不知道该做什么。我假设,由于我使用的是一个外部组件(即Quill Image ),它不是Quill js的一部分,因此Php 的开发人员没有添加对图像大小调整的支持。
有人能引导我通过我应该采取的步骤来纠正这个错误吗?
发布于 2018-10-18 21:17:25
我也有同样的问题,下面是我怎么改正的
有关问题的信息:
当您调整图像大小时,属性width="xx"由Quill Image Resizer插件插入。但是,在PHP Quill Renderer中,Parse不知道这个属性,因为与任何Delta关联使用默认值。
switch ($attribute) {
default:
$this->insert($quill);
break;
}解决方案:
为了纠正这个问题,我们需要在选项中添加一个新的width常量,然后在解析中添加一个新的case来将这个常量链接到图像中。
页面: Options.php (木质素: 50)
public const ATTRIBUTE_WIDTH = 'width';
public const ATTRIBUTE_ALT = 'alt';页面:解析器/Parse.php (ligne : 179)
case Options::ATTRIBUTE_WIDTH:
$this->image($quill);
break;
case Options::ATTRIBUTE_ALT:
$this->image($quill);
break;不确定这是最好的解决方案,但它解决了问题,基本功能没有任何改变。正如您在我的代码中所看到的,我还添加了alt属性来将其与图像关联起来。可能对你也有好处
祝你好运!
https://stackoverflow.com/questions/52806936
复制相似问题