Нужна помощь с проверкой формы Zend - PullRequest
0 голосов
/ 09 июня 2011

Я хотел создать форму приглашения для регистрации пользователя.Но форма регистрации только для людей, имеющих специальный код приглашения.Так как я могу установить его в форме проверки Zend, чтобы проверить, совпадает ли код приглашения с кодом, введенным пользователем.Код приглашения одинаков для всех приглашенных.

Вот код, который я написал.

                    $invitationElement = new Zend_Form_Element_Text('invitationCode');
                    $invitationElement->setLabel('Invitation Code');
                    $invitationElement->setRequired(true);

Большое спасибо заранее

Ответы [ 3 ]

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

Если вы используете 5.3, вы можете использовать средство проверки обратного вызова с закрытием:

$valid = new Zend_Validate_Callback(function($value){
    // some validation
    return true;
});

или вы можете использовать валидатор регулярных выражений

$validator = new Zend_Validate_Regex(array('pattern' => '/^Test/');

или Идентичный валидатор:

$valid = new Zend_Validate_Identical('test');
0 голосов
/ 09 июня 2011

Это бизнес-требование, и вы должны проверить его на бизнес-уровне, и я предлагаю вам то же самое.

Я бы предложил вам иметь уникальную строку запроса, которая идентифицирует запрос и обрабатывает страницу.Что-то вроде

http://www.example.com/signup?invite=som32mthing23unique0988h

Убедитесь, что у людей есть вышеуказанный код при отображении формы.

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

Вы можете сделать это в контроллере (получить данные POST и проверить, соответствует ли он вашему пригласительному коду - и если нет, добавить ошибку в элемент формы), или вы можете написать свой собственный валидатор. Этот пост может помочь вам с написанием пользовательского валидатора (или просто Google для дальнейших ресурсов).

...