详解在YII2框架中使用UEditor编辑器发布文章


Posted in PHP onNovember 02, 2018

本文介绍了详解在YII2框架中使用UEditor编辑器发布文章 ,分享给大家,具体如下:

创建文章数据表

 文章数据表主要有4个字段
1.id  主键(int)
2.title 标题(varchar)
3.content 内容(text)
4.created_time 创建时间(int)

创建文章模型

创建文章模型,不要忘记设置验证规则和字段的名称

namespace backend\models;
class Article extends \yii\db\ActiveRecord
{
public function rules()
{
  return [
    [['title', 'content'], 'required'],
  ];
}
public function attributeLabels()
{
  return [
    'id' => 'ID',
    'title' => '名称',
    'content' => '内容',
  ];
}
}

创建控制器

创建文章控制器并编写发布文章功能

namespace backend\controllers;

use backend\models\Article;

class ArticleController extends \yii\web\Controller
{
  /*
   * 发布文章
   */
  public function actionAdd()
  {
    $article = new Article();
    if($article->load(\Yii::$app->request->post()) && $article->validate()){
 $article->created_time = time();
      $article->save();  
      \Yii::$app->session->setFlash('success','文章添加成功');
      return $this->refresh();
    }

    return $this->render('add',['article'=>$article]);
  }
}

安装UEditor小部件

使用composer命令安装

composer require kucha/ueditor "*"

在控制器中定义处理上传文件的动作

在控制器中定义动作,用于处理UEditor上传的文件。

可以配置域名,上传路径,上传文件命名格式等等

public function actions()
{
  return [
    'upload' => [
      'class' => 'kucha\ueditor\UEditorAction',
      'config' => [
        "imageUrlPrefix" => "",//图片访问路径前缀
        "imagePathFormat" => "/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}" //上传保存路径
        "imageRoot" => Yii::getAlias("@webroot"),
      ],
    ]
  ];
}

在视图中显示UEditor编辑器

在视图表单中使用如下代码显示UEditor编辑器

$form = \yii\bootstrap\ActiveForm::begin();
echo $form->field($article,'title');
echo $form->field($article,'content')->widget('kucha\ueditor\UEditor',[
  'clientOptions' => [
    //编辑区域大小
    'initialFrameHeight' => '200',
    //设置语言
    'lang' =>'en', //中文为 zh-cn
    //定制菜单
    'toolbars' => [
      [
        'fullscreen', 'source', 'undo', 'redo', '|',
        'fontsize',
        'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'removeformat',
        'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|',
        'forecolor', 'backcolor', '|',
        'lineheight', '|',
        'indent', '|'
      ],
    ]
]);
echo \yii\bootstrap\Html::submitButton('提交',['class'=>'btn btn-info']);
\yii\bootstrap\ActiveForm::end();

最终页面效果

详解在YII2框架中使用UEditor编辑器发布文章

以下是发布文章功能编写完成后的效果,是不是很炫?希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP连接SQLServer2005 的问题解决方法
Jul 19 PHP
ThinkPHP实现多数据库连接的解决方法
Jul 01 PHP
php json转换成数组形式代码分享
Nov 10 PHP
php实现mysql数据库连接操作及用户管理
Nov 08 PHP
PHP实现的蚂蚁爬杆路径算法代码
Dec 03 PHP
phalcon框架使用指南
Feb 23 PHP
phpcms配置列表页以及获得文章发布时间
Jul 04 PHP
php生成word并下载代码实例
Mar 15 PHP
微信JSSDK分享功能图文实例详解
Apr 08 PHP
PHP中的自动加载操作实现方法详解
Aug 06 PHP
在laravel框架中实现封装公共方法全局调用
Oct 14 PHP
PHP中通过getopt解析GNU C风格命令行选项
Nov 18 PHP
yii2 上传图片的示例代码
Nov 02 #PHP
yii2实现Ueditor百度编辑器的示例代码
Nov 02 #PHP
php 调用百度sms来发送短信的实现示例
Nov 02 #PHP
Linux下 php7安装redis的方法
Nov 01 #PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
Oct 31 #PHP
php图片裁剪函数
Oct 31 #PHP
php+js实现裁剪任意形状图片
Oct 31 #PHP
You might like
用 Composer构建自己的 PHP 框架之设计 MVC
2014/10/30 PHP
php中ftp_chdir与ftp_cdup函数用法
2014/11/18 PHP
jtable列中自定义button示例代码
2013/11/21 Javascript
深入理解javascript严格模式(Strict Mode)
2014/11/28 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
JS+CSS实现分类动态选择及移动功能效果代码
2015/10/19 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
JavaScript驾驭网页-获取网页元素
2016/03/24 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
2016/07/07 Javascript
AngularJs concepts详解及示例代码
2016/09/01 Javascript
jQuery实现邮箱下拉列表自动补全功能
2016/09/08 Javascript
Javascript中字符串replace方法的第二个参数探究
2016/12/05 Javascript
js实现登录验证码
2016/12/22 Javascript
jQuery ajax实现省市县三级联动
2021/03/07 Javascript
AngularJS对动态增加的DOM实现ng-keyup事件示例
2018/03/12 Javascript
基于Vue2x的图片预览插件的示例代码
2018/05/14 Javascript
了解JavaScript表单操作和表单域
2019/05/27 Javascript
[02:32]DOTA2完美大师赛场馆静安体育中心观赛全攻略
2017/11/08 DOTA
Python Tkinter基础控件用法
2014/09/03 Python
python数组复制拷贝的实现方法
2015/06/09 Python
浅析AST抽象语法树及Python代码实现
2016/06/06 Python
python使用正则表达式的search()函数实现指定位置搜索功能
2017/11/10 Python
matplotlib subplots 设置总图的标题方法
2018/05/25 Python
python TF-IDF算法实现文本关键词提取
2019/05/29 Python
python监控进程状态,记录重启时间及进程号的实例
2019/07/15 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
2020/06/15 Python
python实现批处理文件
2020/07/28 Python
Python爬虫之Selenium警告框(弹窗)处理
2020/12/04 Python
屈臣氏俄罗斯在线商店:Watsons俄罗斯
2020/08/03 全球购物
2014元旦晚会策划方案
2014/02/19 职场文书
整顿机关作风心得体会
2014/09/10 职场文书
党支部先进事迹材料
2014/12/24 职场文书
2015年教研组工作总结
2015/05/04 职场文书
摩登时代观后感
2015/06/03 职场文书
门面租赁合同范文
2019/08/06 职场文书
使用pipenv管理python虚拟环境的全过程
2021/09/25 Python