Проблема CakePHP проверки альфа с проверкой проверена - что я делаю не так? - PullRequest
0 голосов
/ 08 июня 2011

Извините за мое незнание по этому вопросу, но то, что кажется очевидным решением проблемы, не собирается для меня ..

Моя проверка работает отлично, за исключением того, что когда я вводю какие-либо буквенные символы в поле формы, я получаю сообщение об ошибке sql:

SQL Error: 1054: Unknown column 'abcde' in 'where clause'...

Как видите, я ввел abcd в качестве теста.

Но если я ввожу числовой символ и в соответствии с моей проверкой все в порядке ... Похоже, альфа-значение читается как имя столбца ??

Вот мое правило проверки:

        ...'Age' => array(
        array(
            'rule' => array('maxLength', 3),
        array(
            'rule' => 'numeric',
            'allowEmpty' => true,
            'message' => 'Age must be numeric.'
        ),
    ),

Вот код подтверждения моего контроллера:

        if ($this->RequestHandler->isAjax()) {
        if ($this->Plan->validates()) {
            $this->Plan->set($this->data);
            $errors = $this->Plan->invalidFields();
            $this->set('errors', $errors);
        } else {
            $this->Plan->set($this->data);
        }
    }

Как видите, я возвращаю свои ошибки на мой взгляд, и правильная ошибка "Возраст должен быть числовым". на самом деле отображается так, как ожидалось, но только с ошибками SQL.

Спасибо за понимание того, почему это происходит.

1 Ответ

2 голосов
/ 09 июня 2011

Ты вообще читаешь руководство? В Кулинарной книге четко указано, что вам нужно дать имена своим правилам, если вы хотите использовать несколько правил.

Кроме того, ваш массив вложен совершенно неправильно. Я не знаю, как это может работать, но в любом случае, вот как должна выглядеть ваша проверка:

var $validate = array(
    'Age' => array(
        'length' => array(
            'rule' => array('maxLength', 3)
        ),
        'numbers' => array(
            'rule' => 'numeric',
            'allowEmpty' => true,
            'message' => 'Age must be numeric.'
        )
    )
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...