Zend: отправить форму с прописными значениями - PullRequest
1 голос
/ 03 ноября 2010

Я хочу отправить Zend-форму, но со строчными значениями. Независимо от варианта использования, но я хочу получить значение формы в нижнем регистре. Я создаю такую ​​форму.

$elements = array();

$element = $this->CreateElement('text', 'LastName');
$element->setLabel('Last Name');
$element->addFilter( 'StringToLower' );
$elements[] = $element;

$element = $this->CreateElement('text', 'FirstName');
$element->setLabel('First Name');
$element->addFilter( 'StringToLower' );
$elements[] = $element;

$this->addElements($elements);

И получить такие значения:

$request = $this->getRequest();
$values = $request->getParams();

Над формой успешно отправляются значения формы, но $element->addFilter( 'StringToLower' );, похоже, не работает. Всегда отправляйте форму с введенным пользователем регистром, а не строчными.

Как заставить форму преобразовать все значения в нижний регистр?

Спасибо

Ответы [ 2 ]

4 голосов
/ 03 ноября 2010

Вы не описали, как получить значения результата, но это правильный способ сделать это:

$values = $form->getValues()

Кроме того, более удобный способ написания того же кода может быть:

$this->addElement('text', 'LastName', array(
    'label' => 'Last Name',
    'filters' => array('StringToLower')
));

И одним из возможных полных обходных путей может быть:

if ($this->_request->isPost() && $form->isValid($this->_request->getPost())) {
    $values = $form->getValues();
}
1 голос
/ 03 ноября 2010

Вы вызываете $ form-> isValid (), а затем используете $ form-> getValues ​​()?

Данные формы не будут фильтроваться самостоятельно, если у вас также нет проверки / фильтрации на стороне клиента.

$form = new MyForm();

if($form->isValid($this->getRequest()->getPost()){
    $filteredValues = $form->getValues();
} else {
    // validation failed
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...