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

创建文章数据表

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

创建文章模型

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

namespace backend\\models;
class Article extends \\yii\\db\\ActiveRecord
{
  public function rules()
  {
    return [
      [[\' \', \'content\'], \'required\'],
    ];
  }
public function attributeLabels()
{
  return [
    \'id\' => \'ID\',
    \' \' => \'名称\',
    \'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,\' \');
echo $form->field($article,\'content\')->widget(\'kucha\\ueditor\\UEditor\',[
  \'clientOptions\' => [
    //编辑区域大小
    \'initial Height\' => \'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();

最终页面效果

\"\"

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

收藏 打印