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

在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();

最终页面效果

以下是发布文章功能编写完成后的效果,是不是很炫?

时间: 2024-10-25 21:45:51

在YII2框架中使用UEditor编辑器发布文章的相关文章

vue中使用Ueditor编辑器

一.   下载包: 从Ueditor的官网下载1.4.3.3jsp版本的Ueditor编辑器,官网地址为: http://ueditor.baidu.com/website/ 下载解压后会得到如果下文件目录: 将上述Ueditor文件夹拷贝到vue项目的static文件夹中,此文件夹为项目的静态服务文件夹:   二.   修改配置 在ueditor.config.js中修改如下代码:   // 这里是配置Ueditor内部进行文件请求时的静态文件服务地址 window.UEDITOR_HOME_

yii2框架中引用bootstrap中的日期插件yii2-date-picker

最近在学习yii2 框架,发现框架很强大,而且结合了时下许多新的技术在里面. 简单记录一下yii2-date-picker插件的使用方法: 首先先了解一下github中的相关资源:https://github.com/2amigos/yii2-date-picker-widget 其次:在自己的项目中利用上面链接中的相关方法下载此资源,命令为: php composer.phar require "2amigos/yii2-date-picker-widget" "*&quo

CI框架中集成CKEditor编辑器的教程

CKEditor是在很多开发过程中都会用到的一个富文本编辑器,那么如何在CI框架中使用它呢?这里介绍了在CI下使用CKEditor的方法,版本比较低,是在CI 1.7.3下使用fckeditor 2.6.6.供大家参考. 1.将fckeditor目录置入CI_PATH/system/plugins/ 2.在CI_PATH/system/application/config/config.php中加入: $config['fckeditor_basepath'] = "/system/plugin

dwz框架中使用markdown编辑器

dwz默认是拦截submit事件的.这样常见的绝大部分编辑器因为也需要再submit的时候同步,就会导致内容失效.所以需要在submit之前加上同步事件. function sycn(){ $("#content").val( editor.codemirror.getValue() ); } 然后在form的submit里面加上 onsubmit="sycn();return validateCallback(this, dialogAjaxMenu)" 使用框架

yii2框架中使用下拉菜单的自动搜索yii-widget-select2

github中源代码地址:https://github.com/kartik-v/yii2-widget-select2 利用composer.phar安装此插件: php composer.phar require kartik-v/yii2-widget-select2 "*" 引用方法: use kartik\select2\Select2; 源代码:  <?= $form->field($model, 'companies_company_id')->widg

用百度编辑器发布文章代码/英文字符无法自动换行问题解决方法

在正文的DIV中加入“word-break:break-all;”代码,问题就解决了. <div class="txt-box fz14 lh30 p30" style="word-break:break-all;"> content_boby </div>

html 实体转换为字符:转换 UEditor 编辑器 ( 在 ThinkPHP 3.2.2 中 ) 保存的数据

在 ThinkPHP 3.2.2 中使用 UEditor 编辑器保存文章内容时,数据库中保存的数据都被转义成实体,例如:&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-family: 微软雅黑, &amp;#39;Microsoft YaHei&amp;#39;; color: rgb(192, 0, 0);&quot;&gt;&lt;em&gt;&lt

YII2框架详解

yii2框架的安装我们在之前文章中已经提到下面我们开始了解YII2框架 Yii2的应用结构: 目录篇: advance版本的特点是:根目录下预先分配了三个模块,分别是前台.后台.控制台模块. 1.backend 它主要用于管理后台,网站管理员来管理整个系统. assets 目录用于存放前端资源包PHP类. 这里不需要了解什么是前端资源包,只要大致知道是用于管理CSS.js等前端资源就可以了. config 用于存放本应用的配置文件,包含主配置文件 main.php 和全局参数配置文件 param

Nop3.8定制系列(二):UEditor编辑器

Nop中使用UEditor编辑器,官网 http://ueditor.baidu.com/website/ 下载后解压. \Presentation\Nop.Web\Content 下,新建文件夹 ueditor,将解压后的文件 copy 至此文件夹. \Presentation\Nop.Web\Administration\Views\Shared\EditorTemplates 下新建页面 UEditor.cshtml 1 @model String 2 @using Nop.Core 3