Невозможно получить доступ к Zend-представлениям из файла контроллера - PullRequest
0 голосов
/ 02 марта 2011

В контроллере у меня есть это

public function loginAction()
{
 $form = new forms_AuthForm();
 $this->view->form = $form;
}

В Authform.php у меня есть данные для входа в систему ..

class forms_AuthForm extends Zend_Form
{
   public function __construct($options = null)
    {
        parent::__construct($options);
        $this->setName('login');

 $username = new Zend_Form_Element_Text('username','username');
        $username->setLabel('Username: *')
                  ->setRequired(true);

 $password = new Zend_Form_Element_Text('password','password');
        $password->setLabel('Password: *')
                  ->setRequired(true);

 $submit = new Zend_Form_Element_Submit('submit','submit');
        $submit->setLabel('Login');

        $this->addElements(array($username, $password,
            $submit));

В файле login.phtml я дал

echo $this->form;

дизайн формы не просматривается, вместо этого отображается пустая страница.в чем может быть проблема?

Я могу напечатать содержимое формы в файле контроллера, но когда я назначаю представление формы как

$this->view->form = $form

и пытаюсь отобразить дизайн формы вФайл login.phtml, дизайн формы не виден.

1 Ответ

0 голосов
/ 02 марта 2011

Попробуйте добавить несколько декораторов к вашему Authform.php:

    $this->setDecorators(array(
        'FormElements',
        array('HtmlTag', array('tag' => 'dl', 'class' => 'zend_form')),
        array('Description', array('placement' => 'prepend')),
        'Form'
    ));

Если я удалю это из своей формы (которая выглядит идентично вашей панели для декораторов), моя форма не будет отображаться, но другие элементына странице отображаются, просто нет формы.

...