zoukankan      html  css  js  c++  java
  • yii2 提示Module not inserted due to validation error.

    项目的后台更改和添加文章突然无效了,查看系统日志发现是

    Module not inserted due to validation error.

    其实原因很简单,在表单中加入了百度编辑器,在给编辑器命名的时候使用了name="content",由于yii2 view页面在提交表单后,控制器要使用$model->load()来检查当前类名数组是否存在。

    如:

    view里的表单元素提交的值都放在Article[]数组中,提交的时候会产生这样的一个数组

    array (size=2)
      '_csrf' => string 'cUI2b280TUciBGctXXAHLUUmdwMaBSsRIzIAORd8HDQYNQ8YB38JLg==' (length=56)
      'Article' => 
        array (size=6)
          'title' => string '这是一篇测试文章' (length=24)
          'add_time' => string '2015-10-15 08:39:43' (length=19)
          'author' => string 'qmsu' (length=4)
          'type_id' => string '1' (length=1)
          'status' => string '0' (length=1)
          'content' => string '<p>var_dump($post);</p>' (length=23)

    如果在该数组外还存在其他的值,则$model->load()会返回false,从而无法添加或更新数据

    eg:在Article数组外还有另外一个数据content,从而无法添加或更新数据

    array (size=2)
      '_csrf' => string 'cUI2b280TUciBGctXXAHLUUmdwMaBSsRIzIAORd8HDQYNQ8YB38JLg==' (length=56)
      'Article' => 
        array (size=6)
          'title' => string '这是一篇测试文章' (length=24)
          'add_time' => string '2015-10-15 08:39:43' (length=19)
          'author' => string 'qmsu' (length=4)
          'type_id' => string '1' (length=1)
          'status' => string '0' (length=1)
      'content' => string '<p>var_dump($post);</p>' (length=23)

    所以在view页面给表单元素命名时,应该使用如下方式name="Article[content]"

    <input type="text" maxlength="255" value="" name="Article[content]" class="form-control" id="article-author">

    注意:如果使用yii2自动生成表单则无需担心此问题

  • 相关阅读:
    免费的编程中文书籍索引【转】
    Linux字符集的查看及修改【转】
    expect学习笔记及实例详解【转】
    mycat学习笔记
    Vue-loader 开启压缩后的一些坑
    使用webpack搭建vue开发环境
    基于webpack和vue.js搭建开发环境
    Sublime Text 3 常用插件以及安装方法(vue 插件)
    NodeJS、NPM安装配置步骤(windows版本)
    Https方式使用Git@OSC设置密码的方式
  • 原文地址:https://www.cnblogs.com/qmsu/p/4882396.html
Copyright © 2011-2022 走看看