У меня есть форма, для которой я пытаюсь установить действие. Я хочу объявить действие внутри моего файла формы (который расширяет Zend_Form), а не в контроллере или представлении, используя маршрут, который я создал в моем бутстрапе. Обычно, когда я хочу использовать маршрут, я делаю что-то вроде
$this->url(array(), 'route-name');
в представлении, или
$this->_helper->url(array(), 'route-name');
в контроллере.
Как мне вызвать маршрут из Zend_Form?
изменить: Я отказался от попытки загрузить маршрут в zend_form. Возможно, в будущем выпуске может быть функция, чтобы легко это сделать?
Я создал viewScript для своей формы и задал маршрут следующим образом: В функции init:
$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>