【问题标题】:Yii2 - Value Not Getiing Updated Through $model->save()Yii2 - 没有通过 $model->save() 更新值
【发布时间】:2015-11-30 10:54:40
【问题描述】:

我正在使用save() 更新用户详细信息。而且,我遵循了 yii 框架的指南,即Yii2-Guide-Save()

$customer = Customer::findOne(123);
$customer->email = 'james@newexample.com';
$customer->save();

但是,它不会更新任何值。我不明白是什么问题。

什么时候,我在做var_dump($users->save()); 它正在显示bool(false). $confirmLinkID; 值来了。

这是我的控制器。

public function actionResend()
{
    $model=new Users(); // User Model

    if ($model->load(Yii::$app->request->post())) {

        $post = Yii::$app->request->post('Users');

        $userDetails = $model->findOne(['email' => $post['email']]);

        // If Account Is Already Activated
        if($userDetails['status'] == 1) {
            Yii::$app->session->setFlash('AccountAlreadyVerified');
            return $this->refresh();
        }

        // If status == 2 
        if($userDetails) { 
            $confirmLinkID=$model->getAuthKey();
            $users = Users::findOne(['email' => $post['email']]);
            $users->auth_key = $confirmLinkID;
            $users->save();
        }
    }
}

请帮忙。

【问题讨论】:

    标签: php model save yii2 yii2-basic-app


    【解决方案1】:

    试试

     $customer->save(false);
    

    如果使用参数 false 保存数据,则验证规则有问题(有选择地评论以查找引发问题的规则)

    否则检查您是否在模型中定义了可以隐藏/覆盖数据/列字段的变量

    【讨论】:

    • $customer->save(false); 值更新后。谢谢斯凯斯。
    • 嗨@Scais,要问一个问题。 $customer->save(false); 正在工作。没关系。它是否会妨碍任何与安全相关的问题。 Bcoz,$customer->save(); 不起作用。所以,它出现在了我的脑海中。你能解释一下吗(如果你不忙)。谢谢。
    • 当使用$customer->save(false);不运行验证规则。当您尝试保存的模型中包含的数据与验证规则相反时,此技术很有用。然后使用该技术来确定问题是处于验证阶段还是其他阶段。如果问题出在验证规则上,那么您有选择地继续检查规则,以找出导致验证问题的原因。
    • 一旦识别出来,就明白为什么该字段不符合规则(如果该字段的值错误或规则有待改进)
    猜你喜欢
    • 2023-03-15
    • 2016-09-23
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多