首先是使用composer安装ueditor扩展

composer require codingyu/ueditor

发布资源

php artisan vendor:publish --provider='Codingyu\LaravelUEditor\UEditorServiceProvider'

config/admin.php文件的extensions,加上属于这个扩展的一些配置

​'extensions' => ['ueditor' => [// 如果要关掉这个扩展,设置为false'enable' => true,// 编辑器的前端配置 参考:http://fex.baidu.com/ueditor/#start-config'config' => ['initialFrameHeight' => 400, // 例如初始化高度],// 'field_type' => '自定义名字']]

在form表单中使用

$form->UEditor('content');

到此,ueditor已经可以在laravel-admin的表单中使用。

但是!!!

当我们把它用在hasMany中时会发现,富文本编辑器只在第一个表单中显示,继续新增表单时,并不能增加新的富文本编辑器,这是因为UEditor生成富文本编辑器是根据容器的id去生成,但是在hasMany时的id是不变的(前端页面id属性唯一),所以我们需要自己动手改一改,让id属性可以根据新增表单的数量进行变动(我是给id后面加数字实现)。

1、在app\Admin\Extensions下创建新文件Editor.php和UEditor.php文件

Editor.php:

​
<?phpnamespace App\Admin\Extensions;use Encore\Admin\Form\Field;
use Encore\Admin\Extension;class Editor extends Field
{protected $view = 'admin.ueditor';protected static $js = ['vendor/ueditor/ueditor.config.js','vendor/ueditor/ueditor.all.js',];protected static $css = ['/vendor/ueditor/themes/iframe.css'];public function render(){$name = $this->formatName($this->column);$jsId = \Illuminate\Support\Str::studly(\Illuminate\Support\Str::slug($this->id));$config = Ueditor::config('config', []);$config = json_encode(array_merge($config, $this->options));$laravel_ueditor_route = config('ueditor.route.name');$token = csrf_token();$this->script = <<<EOTwindow.UEDITOR_CONFIG.serverUrl = '{$laravel_ueditor_route}';
var ue_{$jsId} = UE.getEditor('{$this->id}', {$config});
ue_{$jsId}.ready(function() {ue_{$jsId}.execCommand('serverparam', '_token', '$token');
});EOT;return parent::render();}}​

静态资源JS和CSS发布资源后会自动生成

UEditor.php:

​
<?phpnamespace App\Admin\Extensions;use Encore\Admin\Extension;class Ueditor extends Extension
{public $name = 'ueditor';public $views = __DIR__.'/../resources/views';
}​

如果遇到命名空间正确,但是提示UEditor.php不存在的情况,可以执行:

 composer dump-autoload

2、在resources\views\admin下新增ueditor.blade.php视图文件

ueditor.blade.php:

​
<div class="{{$viewClass['form-group']}} {!! !$errors->has($errorKey) ? '' : 'has-error' !!}"><label for="{{$id}}" class="{{$viewClass['label']}} control-label">{{$label}}</label><div class="{{$viewClass['field']}}">@include('admin::form.error')<textarea class="editor_container" id="{{$id}}" name="{{$name}}">{!! old($column, $value) !!}</textarea>@include('admin::form.help-block')</div>
</div>
<script>
(function ($) {$(function(){// 这里的class名需要注意,我1.8.10版本和1.8.11版本class名从has-many-extras-form变成了has-many-extends-form,导致我后面复用这段代码时无效,谢谢前端小姐姐的敏锐观察!                            $('.has-many-extras-form').each(function(i, form){var idx = i + 1;$(this).find('.editor_container').attr('id', '{{$id}}' + idx);createEdit('{{$id}}' + idx);});});
})(jQuery);function createEdit($id) {UE.delEditor($id);UE.getEditor($id);
}</script>​

3、修改app\Admin\bootstrap.php文件,添加以下代码:

use App\Admin\Extensions\Editor;Encore\Admin\Form::extend('multiple_editor', Editor::class);

4、最后在laravel-admin form表单页面使用:

$form->multiple_editor('content', __('内容详情'));

5、完成效果

6、可能遇到的问题:

可能会遇到进入编辑页时富文本加载不出来的情况,需要刷新页面解决,我现在这种情况是偶尔出现。还在找原因,但不影响使用,功能实现了就行(手动滑稽)。

laravel6+Laravel-admin1.8.11 一对多 hasMany 中集成UEditor富文本编辑器相关推荐

  1. wangeditor ajax,laravel 中 wangEditor 富文本编辑器使用指南

    在本课程中,老师使用的富文本编辑器是 2.0 的版本,且输入区域使用的 textarea,但是在新的 3.0 版本中(新版本富文本编辑器只需要引用一个js文件即可),开发者不建议使用 textarea ...

  2. 11. Django 引入富文本编辑器KindEditor

    打开微信扫一扫,关注微信公众号[数据与算法联盟] 转载请注明出处:http://blog.csdn.net/gamer_gyt 博主微博:http://weibo.com/234654758 Gith ...

  3. 富文本框让最大四百像素_Django2.0.4 结合 KindEditor 4.1.11 富文本编辑器

    {# 加载静态文件 #} {% load static %} 首页 {# 载入js库 #} 富文本 查看 initKindEditor(); function initKindEditor() { v ...

  4. Laravel结合wangEditor3富文本编辑器实现文章发布、多图片上传

    写在前面 ①定义路由 Route::post('article/image/upload', 'ArticleController@imageUpload'); ②修改配置文件config/files ...

  5. ueditor集成实例php,Laravel框架集成UEditor编辑器的方法图文与实例详解

    本文实例讲述了Laravel框架集成UEditor编辑器的方法.分享给大家供大家参考,具体如下: 一. 背景 在项目开发的过程中,免不了使用修改功能,而富文本编辑器是极为方便的一种推荐,当然,个人认为 ...

  6. laravel基础课程---11、lavarel的ajax操作(ajax优劣势是什么)

    laravel基础课程---11.lavarel的ajax操作(ajax优劣势是什么) 一.总结 一句话总结: 优势:用户友好度:异步通信,不会频繁刷新页面,用户友好度比较高 优势:减轻数据库压力 缺 ...

  7. 静电场与电流场_2021高考复习:静电场考点突破微专题11 带电粒子在交变电场中的运动 9.26...

    静电场考点突破微专题11  带电粒子在交变电场中的运动 一.知能掌握 1.常见的交变电场 常见的产生交变电场的电压波形有方形波.锯齿波.正弦波等. 2.常见的题目类型 (1)粒子做单向直线运动(一般用 ...

  8. laravel mysql rand_laravel如何从mysql数据库中随机抽取n条数据(高性能) - Laravel学习网...

    laravel如何高性能地从mysql数据库中随机获取n条数据,有时候我们常常会需要从数据库随机获取数据,比如:给工作人员随机分配10个订单,随机从数据库中随机抽查100个用户:这样我们就需要随机从数 ...

  9. Java 11:String类中的新方法

    Java 11:String类中的新方法 Java 11没有很多特定于语言的功能.因此,令人惊讶的是,在Java String Class中引入了6种新方法. Java 11 String类新方法 让 ...

最新文章

  1. 2招按摩轻松解除黑眼圈 - 生活至上,美容至尚!
  2. 对于才能来说,没有教训与没有经验一样,都不能使人成大器
  3. android r 编译找不到头文件_「投稿」iOS逆向——砸壳与反编译
  4. 学术会议html模板,学术会议poster模板
  5. FreeImage使用方法
  6. android内存碎片问题优化梳理
  7. 【AI视野·今日CV 计算机视觉论文速览 第200期】Tue, 18 May 2021
  8. c语言 char作用,c语言中char型数据能直接运算吗?
  9. java获取当天是周几
  10. 安装计算机一级出现appcrash,问题事件名称: APPCRASH 终于解决了。
  11. 设计模式之禅【解释器模式】
  12. 【原创】大叔经验分享(30)CM开启kerberos
  13. Excel会计应学35招秘技
  14. 实战 本地服务器Confluence 7.13部署 一篇就够(从0开始安装配置 Debian11 + Mysql + Java)超详细
  15. 2021年最新考勤记录表排表小工具
  16. Occlusions, Motion and Depth Boundaries with a Generic Network for Disparity, Optical Flow or Scene
  17. APP开发中的UI设计
  18. 使用box2dweb做一个下落的小球,宝宝玩的不亦乐乎
  19. 拼团拓客商城系统,集拼团、爆品、推广分销及奖励为一体的B2B2C模式的SaaS平台
  20. linksys rv042配置client to gateway ***

热门文章

  1. 感谢邪恶八进制信息安全团队的祝福
  2. 【全网首发】华秋CAM:免费Gerber查看器,离线版!
  3. 高质量C++/C编程指南 1
  4. nero刻录下载_Nero的3种替代品,可用于Linux CD和DVD刻录
  5. ue4-模型及动作fbx导入
  6. VFP调用Selenium入门篇(一)
  7. 冒险岛2乐器制作详细方法
  8. 65 ---- 点到平面、点到直线 及异面直线间的距离
  9. android中的日期选择器,Android-PickerView
  10. Java项目:医院电子病历管理系统(java+Servlet+JSP+Easyui+Mysql)