FastAdmin 富文本编辑器bug

一键CRUD中富文本自定义字段生成的条件、存在的BUG与修改建议(接上一篇)

在学习过程中,发现一键CRUD中,对于指定富文本字段生成的过程中,可能存在BUG,并且与插件“在线命令”,存在不一致性,导致自定义的富文本字段无法自动完成创建。
举例指定“abcabc”为富文本字段:
一键CRUD说明中的示例指令是 --editorclass=abcabc
插件“在线命令”生成指令是 --editorsuffix=abcabc
实际运行一键CRUD后无效。

经检查对比,我认为 application\admin\command\Crud.php 中的部分逻辑是造成此现象的原因。

现将总结的经验分享如下:
生成编辑器字段的达到条件为:
1、字段是 text 类型:text,tinytext,smalltext,mediumtext,longtext
否则不会生成textarea元素,而仅生成input元素。
2、按照 --editorclass=abcabc执行。
3、检查生成view中的add、edit页面,对应“abcabc”应生成正确的textarea元素,并可能需要手工添加 class="form-control editor"中的editor。查找 add.html、edit.html中的以下代码

<textarea id="c-abcabc" data-rule="required" class="form-control editor" rows="5" name="row[abcabc]" cols="50">...

修改后,页面能够正常出现富文本编辑器。

Crud.php 更新建议,同时修改三处:

181行

->addOption('editorclass', null, Option::VALUE_OPTIONAL, 'automatically generate editor class', null)
// 修改为
->addOption('editorsuffix', null, Option::VALUE_OPTIONAL, 'automatically generate editor class', null)

250行

$editorclass = $input->getOption('editorclass');
// 修改为
$editorsuffix = $input->getOption('editorsuffix');

284行

if ($editorclass) {
    $this->editorClass = $editorclass;
}
// 修改为
if ($editorsuffix) {
    $this->editorSuffix = $editorsuffix;
}

经过对自拟表的自定义字段和FA自带test表测试,修改后的一键CRUD工作正常,均正常生成了富文本编辑器模式。

你可能感兴趣的:(FastAdmin)