Валидации не работают в YII - PullRequest
0 голосов
/ 18 января 2012

Это мой код:

public function rules()
    {
        // NOTE: you should only define rules for those attributes that
        // will receive user inputs.
        return array(

            array('ScriptName,TestSystem_id', 'required'),

            array('TestSystem_id, TmatsUser_id, Active', 'numerical', 'integerOnly'=>true),
            array('ScriptName, TestObjective,  ScriptFormat, ComponentImpact', 'length', 'max'=>120),
            array('Description, ScriptCode, ProvisionReq', 'safe'),
            // The following rule is used by search().
            // Please remove those attributes that should not be searched.
            array('id, TestSystem_id, TmatsUser_id, ScriptCode, ProvisionReq, ScriptName, Description, ScriptFormat, Active', 'safe', 'on'=>'search'),
        );
    }

Но проверки не работают.Он выдает следующую ошибку

CDbException
CDbCommand failed to execute the SQL statement: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'TestSystem_id' cannot be null 

, он вообще не проверяет ScriptName.

В базе данных оба заданы как NOT NULL.

Проверка в других формах работает нормально.

Любая помощь приветствуется.

1 Ответ

2 голосов
/ 19 января 2012

Эта ошибка означает, что у вас есть какая-то таблица в базе данных, в которой хранятся первичные ключи внешних ключей, которые вы храните в таблице ... И вы пытаетесь сохранить некоторое значение в столбце внешнего ключа, которого нет в столбцепервичного ключа в другой таблице .. Но, значит, произошло нарушение ограничения целостности базы данных ... Либо удалите ограничения базы данных из базы данных, потому что они у нас есть с моделями, поэтому они не требуются ...

хранение данных, присутствующих в столбце первичного ключа родительской таблицы ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...