Laravel配置rich-text-laravel遇Purifier类型错误及解决方法
解决Laravel配置rich-text-laravel扩展时HTMLPurifier的class_exists参数错误
在配置rich-text-laravel扩展时,按照文档修改HTMLPurifier配置文件后,出现了如下错误:
class_exists(): Argument #1 ($class) must be of type string, HTMLPurifier_AttrDef_Text given
问题原因
配置文件中custom_attributes部分,错误地直接实例化了HTMLPurifier_AttrDef_Text对象,而HTMLPurifier的配置逻辑要求这里传入类名字符串,而非实例化后的对象。
修复方案
将所有new HTMLPurifier_AttrDef_Text替换为HTMLPurifier_AttrDef_Text::class,传递类的字符串名称即可。
修正后的关键代码片段
'custom_attributes' => [ ['rich-text-attachment', 'sgid', HTMLPurifier_AttrDef_Text::class], ['rich-text-attachment', 'content-type', HTMLPurifier_AttrDef_Text::class], ['rich-text-attachment', 'url', HTMLPurifier_AttrDef_Text::class], ['rich-text-attachment', 'href', HTMLPurifier_AttrDef_Text::class], ['rich-text-attachment', 'filename', HTMLPurifier_AttrDef_Text::class], ['rich-text-attachment', 'filesize', HTMLPurifier_AttrDef_Text::class], ['rich-text-attachment', 'height', HTMLPurifier_AttrDef_Text::class], ['rich-text-attachment', 'width', HTMLPurifier_AttrDef_Text::class], ['rich-text-attachment', 'previewable', HTMLPurifier_AttrDef_Text::class], ['rich-text-attachment', 'presentation', HTMLPurifier_AttrDef_Text::class], ['rich-text-attachment', 'caption', HTMLPurifier_AttrDef_Text::class], ['rich-text-attachment', 'data-trix-attachment', HTMLPurifier_AttrDef_Text::class], ['rich-text-attachment', 'data-trix-attributes', HTMLPurifier_AttrDef_Text::class], ['figure', 'data-trix-attachment', HTMLPurifier_AttrDef_Text::class], ['figure', 'data-trix-attributes', HTMLPurifier_AttrDef_Text::class], ],
替换后重新运行代码,错误即可解决。
内容的提问来源于stack exchange,提问作者Ricoz
相关产品推荐
相关产品推荐

