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