业务需求
在我们的日常需求中,会有这种
数据表中存在图片字段,为必填,需要在操作过程中做到
- 创建数据时,图片字段必须
- 修改数据时,图片字段如果不传,就不修改
解决方案
业务数据操作
如果要保持原来的图片数据,那只要修改的时候带着原来的参数即可
- 加载表单时带原来的数据
- 图片数据放在隐藏的文本域中
- 提交表单时如果图片上传的字段没有值,就将原来的图片数据从隐藏文本域中拿出来
这样的操作当然能满足需求,但是太复杂了
定义场景setScenario
在Yii的数据操作中,一般的逻辑如下
- 判断是否有提交数据
Yii::$app->request->post()
- 表单数据加载到模型model中
$model->load(Yii::$app->request->post())
- 保存model的数据
$model->save()
重点时第三步,在save
的操作中,默认执行验证操作,