学习Yii2(基础版)中遇到的坑(三)

学习Yii2(基础版)中遇到的坑(三)

原作者Blog:Yii2系列教程七:Behaviors And Validations

0.在Yii2系列教程七:Behaviors And Validations中遇到的坑

1.正常情况:
在这里插入图片描述
在这里插入图片描述
2.我遇到的情况:
在这里插入图片描述

原因:

我一直以为是models\Status.php文件里的behaviors()函数写错了。
然后一直找behavior()的相关知识,最后新建了一个model来测试,发现,并不是该函数问题,而是models\Status.php下的 rules()的问题。

解决办法:

models\Status.php的rules函数:

    public function rules()
    {
        return [
        	//注释掉下面那一行,验证规则不需要检验那四个字段。因为这四个字段由behaviors()这个行为处理了
        	//当执行$model->save()时,TimestampBehavior这个行为,
        	//支持在 [[yii\db\ActiveRecord|Active Record]] 存储时自动更新它的时间戳属性。BlameableBehavior同理。
//            [['message', 'created_at', 'updated_at','created_by','updated_by'], 'required'],
            [['message'], 'required'],
            [['message'], 'string'],
            [['permissions', 'created_at', 'updated_at','created_by','updated_by'], 'integer'],
        ];
    }

models\Status.php的behaviors()函数:

public function behaviors()
{
    //在return的数组当中,
    //第一个就是使用Yii2的BlameableBehavior自动完成created_by和updated_by这两个字段,
    //至于timestamp这个数组,
    //就是使用Yii2的TimestampBehavior来自动完成created_at和updated_at字段,
    //并且这会根据数据的BEFORE_INSERT和BEFORE_UPDATE两种情况来自动完成添加。
    return [
        [
            'class' => BlameableBehavior::className(),
            'createdByAttribute' => 'created_by',
            'updatedByAttribute' => 'updated_by',
        ],
        'timestamp' => [
            //'class' => 'yii\behaviors\TimestampBehavior',
            'class'=>TimestampBehavior::className(),
            'attributes' => [
                ActiveRecord::EVENT_BEFORE_INSERT => ['created_at','updated_at'],
                ActiveRecord::EVENT_AFTER_UPDATE => ['updated_at'],
                ],
        ],
    ];
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值