37763
- 37763 2016-09-17 已签到连续签到3天,获得了15个金钱
- 37763 2016-09-16 已签到连续签到2天,获得了10个金钱
- 37763 2016-09-15 已签到连续签到1天,获得了5个金钱
- 37763 2016-09-13 已签到连续签到1天,获得了5个金钱
要一起用,
load()
只是加载数据,validate()
才是验证。
更新和添加都用save()
,yii通过$model->isNewRecord
来判断是不是一条新纪录,然后调用insert()
或者update()
。load()
和setAttributes()
方法都属于批量赋值,yii为了保护数据的安全性,是禁止批量赋值的,但是当数据符合rule规则的时候就可以批量赋值了,所以没写rules就不能用load()
。就算某个字段不需要什么规则,用户输入什么都可以,那么要把这个字段的规则设置safe,一般gii生成的model最后一行都是safe的。
你可以不用validate()
,因为save方法会先调用validate()
再执行insert()
或者update()
(看源码就知道)。你说的第一句话就错了!
if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->id]); } else { return $this->render('create', [ 'model' => $model, ]); }
这里面的load()还是走验证规则的!
- 37763 发布了话题关于YII2.0的空操作讨论
- 37763 2016-09-11 已签到连续签到1天,获得了5个金钱
- 37763 2016-09-08 已签到连续签到1天,获得了5个金钱
- 37763 2016-09-05 已签到连续签到2天,获得了10个金钱
- 37763 2016-09-04 已签到连续签到1天,获得了5个金钱