Zend_Form, как это:
class Application_Form_Registration extends Zend_Form
{
public function init()
{
/* Form Elements & Other Definitions Here ... */
$$this->setMethod('post');
//first name
$this->addElement('text', 'email', array(
'label' => 'First name',
'required' => true,
'filters' => array('StringTrim'),
));
//last name
$this->addElement('text', 'lastname', array(
'label' => 'Last name',
'required' => true,
'filters' => array('StringTrim')
));
$this->addElement('submit', 'submit', array(
'ignore' => true,
'label' => 'Submit'
));
$this->addElement('hash', 'csrf', array(
'ignore' => true,
));
}}
Я прочитал API-интерфейс ZF1 1.12 и справочный документ, но не могу найти значение флага «игнорировать» в параметрах конфигурации Zend_Form :: addElement ().
Конечно, я погуглил и нашел это, но это не способ работать. Как мне найти смысл определенного конкретного материала. Я не думаю, что мне нужно читать исходный код?
Просто возьми это addElement()
в качестве примера, я что-то упускаю, чтобы посмотреть дальше? Ничего в Zend_Config класс, который я могу найти о ignore
флаг тоже.
Насколько я знаю ignore
флаг определяет, если значения формы ($form->getValues()
) будет содержать значение элемента. Если ignore установлено в true для некоторого элемента, чем значения формы ($form->getValues()
) не будет содержать значение этого элемента.
Документация ZF может быть … иногда отсутствует. Документы API для состояния флага игнорирования:
getIgnore( ) : bool Get ignore flag (used when retrieving values at form level)
Что намекает на то, что ignore
флаг имеет отношение к поведению Zend_Form
GetValues()
но это не совсем прописано.
В этих случаях мне нравится переходить прямо к исходному коду, чтобы я мог убедиться в этом:
public function getValues($supressArrayNotation = false)
{
...
foreach ($this->getElements() as $key => $element) {
if (!$element->getIgnore()) {
...
}
Вы можете видеть, что функция getValues () в Zend_Form будет проверять ignore
Отметьте каждый элемент перед добавлением значения в возвращаемый массив. Если флаг равен true, значение не будет включено.