Zend_Validate_Db_NoRecordExists - запрос не работает, не знаю почему - PullRequest
1 голос
/ 08 августа 2011

Я написал следующее:

  $email->addValidator('emailAddress', false)
        ->setRequired(true)
        ...
        ->addValidator(new Zend_Validate_Db_NoRecordExists(
            array(
                'table'   => 'site_users',
                'field'   => 'email',
            )
        ));

Это не работает, и вместо этого я получаю следующее сообщение об ошибке:

Сообщение: SQLSTATE [42000]: синтаксическая ошибка или нарушение доступа: 1064 У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с 'FROM site_users WHERE (`` =' Test data4 ') LIMIT 1' в строке 1

Есть идеи?

1 Ответ

0 голосов
/ 08 августа 2011

Только что посмотрел код и нашел его в конструкторе для Zend_Validate_Db_Abstract (родительский элемент Zend_Validate_Db_NoRecordExists):

        $options       = func_get_args();
        $temp['table'] = array_shift($options);
        $temp['field'] = array_shift($options);
        if (!empty($options)) {
            $temp['exclude'] = array_shift($options);
        }

        if (!empty($options)) {
            $temp['adapter'] = array_shift($options);
        }

        $options = $temp;

Так что он ожидает, что параметры будут в правильном порядке, иигнорирует указанные вами ключи!Bizarre.Но похоже, что ваш код должен был работать - какую версию ZF вы используете?

...