无法在Yii 2中更新数据库

时间:2016-01-23 11:11:46

标签: php yii

Yii docs说updateAttributes绕过验证并且记录直接更新到数据库中。 在我的模型中:

use yii\base\Component;
use frontend\models\Notifications;

class Notify extends \yii\db\ActiveRecord
{


    public   function send($user, $text){
         $model = new Notifications();
        if ($model->updateAttributes(['created_on'=>'2015-11-12 12:12:15', 'user_id'=>$user, 'text'=>$text])) return true;
        else return $this->getErrors();
    }
    public function notify($users, $text){

        $arr[] = array();
        foreach ($users as $user){
            $result = $this->send($user, $text);
             $arr[]= $result;

        }
    return $arr;
    }
}

在我的控制器中

 $notify  = new Notify;
 $response = $notify->notify([1, $guardian], $note);
 var_dump($response);

现在问题是数据库既没有更新也没有显示任何错误。

我已尝试静态调用该方法,但之后数据库未更新。 我试过调用$ model-> save()..但是数据库仍然没有更新。

更新  我发现即使使用updateAttributes也会发生验证错误。现在的问题是为什么它是如此,而Yii文档说它没有验证。

更新2:  我错误地使用了$ this-> getErrors(),我用$ model替换了$ this。

1 个答案:

答案 0 :(得分:0)

如果您对$model->save();有疑问,请使用:

$model->save(false)

这解决了您的问题。

如果您使用$model->save();过滤器正在运行,那对您不利。