Rensile
- Rensile 赞了回答
if (!\Yii::$app->user->isGuest) {
return $this->goHome(); } $model = new LoginForm(); if($model->load(Yii::$app->request->post()) && $model->login()) { return $this->goBack(); } else { $this->layout = 'login.php'; return $this->render('login', [ 'model' => $model, ]); }
- Rensile 赞了回答
要一起用,
load()
只是加载数据,validate()
才是验证。
更新和添加都用save()
,yii通过$model->isNewRecord
来判断是不是一条新纪录,然后调用insert()
或者update()
。load()
和setAttributes()
方法都属于批量赋值,yii为了保护数据的安全性,是禁止批量赋值的,但是当数据符合rule规则的时候就可以批量赋值了,所以没写rules就不能用load()
。就算某个字段不需要什么规则,用户输入什么都可以,那么要把这个字段的规则设置safe,一般gii生成的model最后一行都是safe的。
你可以不用validate()
,因为save方法会先调用validate()
再执行insert()
或者update()
(看源码就知道)。 在config下面的web.php文件里面有段代码是:
if(YII_ENV_DEV) { // configuration adjustments for 'dev' environment $config['bootstrap'][] = 'debug'; $config['modules']['debug'] = 'yii\debug\Module'; $config['bootstrap'][] = 'gii'; $config['modules']['gii'] = 'yii\gii\Module'; }
将这段代码的if条件取反即可!
或者在您提供的代码里,常量YII_DEBUG的值设为false亦可。
希望可以帮到您!20150330鬼一浪人
@鬼一浪人 请问这个自带的吗,要怎么打开啊
- Rensile 回答了问题 Pjax局部刷新,导致 js 点击效果失效
异步的问题吧··
- Rensile 回答了问题 YII2中的 GridView 自定义字段
为什么我的GII 不会生成那段代码,就是hasOne() 是我自己写进去的···