У меня есть форма, для которой я пытаюсь установить действие. Я хочу объявить действие внутри моего файла формы (который расширяет Zend_Form), а не в контроллере или представлении, используя маршрут, который я создал в моей начальной загрузке.
Обычно, когда я хочу использовать маршрут, я делаю что-то вроде
$this->url(array(), 'route-name');
в представлении или
$this->_helper->url(array(), 'route-name');
в контроллере.
Как мне вызвать маршрут из Zend_Form?
редактирование:
Я отказался от попытки загрузить маршрут в zend_form. Возможно, в будущем выпуске может быть функция, которая легко это сделает?
Я создал viewScript для своей формы и установил маршрут так:
В форме функции инициализации:
$this->setDecorators(array(
'PrepareElements',
array(
'ViewScript', array(
'viewScript' => 'forms/formView.phtml'
))));
и в файле просмотра:
<form method="post" action="<?php echo $this->url(array(), 'route-name'); ?>" enctype="application/x-www-form-urlencoded">
<?php
foreach ($this->element->getElements() as $element)
{
echo $element;
}
?>
</form>