码迷,mamicode.com
首页 > 其他好文 > 详细

yii---load怎么使用

时间:2018-11-29 12:29:47      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:ajax   this   save   else   error   怎么   isp   model   date   

在用YII进行二次开发的时候,看到登录方法有一个load的方法:

public function actionLogin()
{
    if (Yii::$app->request->isPost){
        $loginForm = new LoginForm();
        $postData = Yii::$app->request->post();
        if ($loginForm->load($postData, ‘‘) && $loginForm->login()) {
            return $this->ajaxReturnSuccess();
        }else{
            return $this->ajaxReturnError($loginForm->getError());
        }
    }else{
        return $this->render(‘account/index.html‘);
    }
}

但是在模型上,看不到load方法,就此认为是YII的方法:load方法用于加载数据,例如validate方法是验证方法,更新和添加用的是save()方法。

yii通过$model->isNewRecord 来判断是不是一条新纪录,然后调用insert()或者update()。
load()和setAttributes()方法都属于批量赋值,yii为了保护数据的安全性,是禁止批量赋值的,但是当数据符合rule规则的时候就可以批量赋值了,所以没写rules就不能用load()。就算某个字段不需要什么规则,用户输入什么都可以,那么要把这个字段的规则设置safe,一般gii生成的model最后一行都是safe的。
你可以不用validate(),因为save方法会先调用validate()再执行insert()或者update()(看源码就知道)。

yii---load怎么使用

标签:ajax   this   save   else   error   怎么   isp   model   date   

原文地址:https://www.cnblogs.com/e0yu/p/10037194.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!