2014-12-16 13:40:58 12302次浏览 4条回答 4 悬赏 0 金钱
$form->field($model, 'displayorder', ['options'=>['class'=>'control-group']])->textInput(['displayorder']);

如上代码,MySQL 表中 displayorder 默认值是 10, 当生成的表单默认值是空,这样导致 插入数据的时候报错, coloum can't be null

补充于 2014-12-23 12:00

谢谢 1楼 2楼的回答。非常精彩

  • 回答于 2014-12-17 08:17 举报

    建议你用 DefaultValueValidator 验证器,验证器会给指定的属性添加默认值。可以参考 Yii2 生成的代码 common/models/User.php

    public function rules()
    {
        return [
            ['status', 'default', 'value' => self::STATUS_ACTIVE],
        ];
    }
    
    觉得很赞
  • 回答于 2014-12-17 12:12 举报

    rules() 方法里面设置默认值,一个必要的条件是,需要调用 $model->validate() 方法,不管是直接调用,还是通过 $model->save() 方法间接调用,在展示 新增界面 的时候使用不是很合适,有一个比合适的方法 $model->loadDefautlValues() ,在新增界面,new model 之后,调用 loadDefaultValues 方法,将数据库的默认值设置过来

    1 条回复
    回复于 2019-10-28 09:46 回复

    方法拼错了 $model->loadDefautlValues()

    , 觉得很赞
  • 回答于 2016-05-17 14:23 举报

    发现rules里面写default字段不能在require中定义,否则不会设置默认值

  • 回答于 2016-12-16 13:49 举报

    ![示例图片_02.jpg]

您需要登录后才可以回答。登录 | 立即注册
吴笛
主管

吴笛

注册时间:2013-12-24
最后登录:2016-08-03
在线时长:39小时27分
  • 粉丝5
  • 金钱0
  • 威望20
  • 积分590

热门问题