专栏首页恩蓝脚本详解在YII2框架中使用UEditor编辑器发布文章

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

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

创建文章数据表

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

创建文章模型

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

namespace backendmodels;
class Article extends yiidbActiveRecord
{
  public function rules()
  {
    return [
      [['title', 'content'], 'required'],
    ];
  }
public function attributeLabels()
{
  return [
    'id' =  'ID',
    'title' =  '名称',
    'content' =  '内容',
  ];
}
}

创建控制器

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

namespace backendcontrollers;

use backendmodelsArticle;

class ArticleController extends yiiwebController
{
  /*
   * 发布文章
   */
  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' =  'kuchaueditorUEditorAction',
      'config' =  [
        "imageUrlPrefix" =  "",//图片访问路径前缀
        "imagePathFormat" =  "/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}" //上传保存路径
        "imageRoot" =  Yii::getAlias("@webroot"),
      ],
    ]
  ];
}

在视图中显示UEditor编辑器

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

$form = yiibootstrapActiveForm::begin();
echo $form- field($article,'title');
echo $form- field($article,'content')- widget('kuchaueditorUEditor',[
  '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 yiibootstrapHtml::submitButton('提交',['class'= 'btn btn-info']);
yiibootstrapActiveForm::end();

最终页面效果

以下是发布文章功能编写完成后的效果,是不是很炫?希望对大家的学习有所帮助,也希望大家多多支持网站事(zalou.cn)。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

    砸漏
  • Yii框架自定义数据库操作组件示例

    Yii 的数据库操作对象提供的方法确实很方便。 但是有的时候我们已经习惯了我们以前编写php的数据库操作语法,没有那么多时间去仔细看每个Yii提供的数据库操作语...

    砸漏
  • Python异常处理机制结构实例解析

    其中,很多初学者分不清 finally 和 else 的区别,这里着重说一下。else 语句块只有在没有异常发生的情况下才会执行,而 finally 语句则不管...

    砸漏
  • 写技术文章需要遵循的

    在这个自媒体井喷的时代,每天都会产出数以万计的文章。但大部分文章质量都不高:排版混乱的,连篇错别字的,逻辑混乱的等等等等。

    Joel
  • JDBC小项目—员工管理系统

    时间静止不是简史
  • begin主题使用说明(详解教程)

    主题有些功能会用到文章点击量,所以必须安装文章点击统计插件:wp-postview,也可后台搜索安装官方最新版。

    爱游博客
  • spring boot之从零开始开发自己的网站

    Janti
  • SharePoint 2013 启用 以其他用户身份登陆(Sign in as different user)

    习惯于SharePoint 2010的用户会发现,SharePoint 2013默认把  以其他用户身份登陆(Sign in as different user...

    用户1161731
  • Hexo博客教程(二)| 如何写作新文章并发布

    这个使用---包括起来的内容称之为Front-matter,即前置信息,用于给 Hexo 渲染该 md 文档,除了这三项,还有很多的配置项可以自己添加:

    Mculover666
  • 自媒体作者评奖活动再度开启!(5月)

    为鼓励参与腾讯云自媒体分享计划的作者产出更多优质内容,为自媒体计划注入更多的新鲜力量。云+社区将试运行自媒体作者月度评奖活动(以下简称活动)。

    云加社区

扫码关注云+社区

领取腾讯云代金券