CDbCommand failed to execute the SQL statement:

Предварительное обсуждение найденных ошибок перед отправкой их авторам фреймворка, а также внесение новых предложений.
Ответить
knowill
Сообщения: 74
Зарегистрирован: 2012.12.11, 16:27
Контактная информация:

CDbCommand failed to execute the SQL statement:

Сообщение knowill »

CDbCommand failed to execute the SQL statement: SQLSTATE[23502]: Not null violation: 7 ERROR: null value in column "login" violates not-null constraint. The SQL statement executed was: INSERT INTO "ai_user" ("email") VALUES (:yp0). Bound with :yp0='[email protected]'

Код: Выделить всё

 $user['login'] = 'rasdft111';
        $user['email'] = '[email protected]'; // @todo ya.ru === yandex.ru
        $user['pswd']  = 'pasdfasdf11';
        
        
        var_dump($user);
        
        $saver_user = new User();
        var_dump($saver_user->attributes);
        $saver_user->attributes = $user;
        var_dump($saver_user->attributes);
        var_dump($user);
        $saver_user->save();
//        $saver_user->save(TRUE, $user);
        $saver_user->saveUser($user);
         
        var_dump($saver_user->errors);
array (size=3)
'login' => string 'rasdft111' (length=9)
'email' => string '[email protected]' (length=19)
'pswd' => string 'pasdfasdf11' (length=11)
array (size=4)
'id' => null
'login' => null
'email' => null
'pswd' => null
array (size=4)
'email' => string '[email protected]' (length=19)
'id' => null
'login' => null
'pswd' => null
array (size=3)
'login' => string 'rasdft111' (length=9)
'email' => string '[email protected]' (length=19)
'pswd' => string 'pasdfasdf11' (length=11)
array (size=4)
'email' => string '[email protected]' (length=19)
'id' => null
'login' => null
'pswd' => null
array (size=0)
empty
т.е

Код: Выделить всё

$saver_user->user = $user
передает только

Код: Выделить всё

array (size=4)
  'email' => string '[email protected]' (length=19)
  'id' => null
  'login' => null
  'pswd' => null
хотя я могу в чем то ошибаться т.к минут десять назад данные сохранялись примерно так

Код: Выделить всё

        public function saveUser($user)
        {
            if($user)
            {
                $this->attributes = $user;
                $this->save();
            } else
            {
                throw new CDbException('data is empty');
            }
        }
судя по http://code.google.com/p/yii-usergroups ... tail?id=20 ит is баг.
ну ладно спокойной ночи)
knowill
Сообщения: 74
Зарегистрирован: 2012.12.11, 16:27
Контактная информация:

Re: CDbCommand failed to execute the SQL statement:

Сообщение knowill »

дополнение. Ошибка появляется в случае если правилах валидации указан сценарий, а в new NameModel() пусто. В результате код работает только для тех правил, где есть валидация.
Ответить