为了账号安全,请及时绑定邮箱和手机立即绑定

yii2 的model 执行流程是什么

yii2 的model 执行流程是什么

慕田峪4524236 2019-04-13 08:36:54
之前在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的流程图语法。。。一晚上时间就白费了。。
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 352 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号