之前在yii1里提交数据是$model->load()$model->save()比如我要把date类型转为int类型会在beforesave()里$this->date=time()转换但是在yii2里beforeSave(){$this->date=time()}会先走validate的rule方法就是说没有进beforeSave转换之前就先执行了,那beforeSave还有毛用了
2 回答
富国沪深
TA贡献1790条经验 获得超9个赞
如果楼主是单纯想要给时间字段赋值,建议在模型里添加如下代码:phppublicfunctionbehaviors(){return[['class'=>TimestampBehavior::className(),'attributes'=>[ActiveRecord::EVENT_BEFORE_INSERT=>['created_at','updated_at'],ActiveRecord::EVENT_BEFORE_UPDATE=>'updated_at'],],}然后我再正面回答一下楼主问题,流程如下:flowst=>start:$model->save(runValidation)e=>end:整个请求结束runValidation=>condition:runValidation?beforeValidate=>operation:beforeValidatevalidate=>operation:validate(rules在这儿执行)afterValidate=>operation:afterValidatebeforeSave=>operation:beforeSavesave=>operation:saveafterSave=>operation:afterSavest->runValidationrunValidation(yes,right)->beforeValidaterunValidation(no)->beforeSavebeforeValidate->validate->afterValidate(left)->beforeSavebeforeSave->save->afterSave->e为了画这个流程图,我专门去看了下markdown的流程图语法。。。一晚上时间就白费了。。
添加回答
举报
0/150
提交
取消
