之前在yii1里
提交数据是$model->load()
$model->save()
比如我要把 date类型转为int类型
会在 beforesave()里 $this->date = time()
转换
但是在yii2里
beforeSave(){
$this->date = time()
}
会先走validate的 rule方法
就是说 没有进beforeSave转换之前就先执行了, 那beforeSave还有毛用了
之前在yii1里
提交数据是$model->load()
$model->save()
比如我要把 date类型转为int类型
会在 beforesave()里 $this->date = time()
转换
但是在yii2里
beforeSave(){
$this->date = time()
}
会先走validate的 rule方法
就是说 没有进beforeSave转换之前就先执行了, 那beforeSave还有毛用了
这样写试试:
public function beforeSave($insert)
{
if (parent::beforeSave($insert)) {
$this->date = time();
return true;
} else {
return false;
}
}
不知道题主是什么困扰,但是你如果是非得不走rules()
,可以直接在save()
方法指定$runValidation
为false
RTFM
http://www.yiiframework.com/doc-2.0/yii-db-baseactiverecord.html#save(...
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答554 阅读✓ 已解决
781 阅读
如果楼主是单纯想要给时间字段赋值,建议在模型里添加如下代码: