Zend Framework View Helper - как заставить его работать - PullRequest
0 голосов
/ 28 марта 2012

Я пытаюсь начать работу с Zend Framework, следую за проектом быстрого старта и пытаюсь запустить новый собственный модуль.Я пытаюсь реализовать помощники вида и получаю следующее сообщение: Сообщение: Метод formDate не существует

Последняя запись в трассировке стека:

0 D: \ work \ quickstart_zend \ application \views \ scripts \ users \ register.phtml (38): Zend_Form_Element -> __call ('formDate', Array)

У меня есть следующая структура файла:


    quickstart_zend
     + application
        + configs
        + controllers
        [...]
        + views
          + helpers
          + scripts

     [...]
     + library
        + Application
          + Form
            + Element
                Date.php
          + View
            + Helper
                FormDate.php
     + public

Я добавил вмой public / Bootstrap.php этот метод:



    protected function _initActionHelpers()
        {
            Zend_Controller_Action_HelperBroker::addPath(APPLICATION_PATH.'/../library/Application/View/Helper', 'Application_View_Helper');
            Zend_Controller_Action_HelperBroker::addPrefix('Application_View_Helper');
        }

Я также добавил в мой application.ini:


    autoloaderNamespaces[] = "Application"
    resources.view.helperPath.Application_View_Helper = APPLICATION_PATH "/../library/Application/View/Helper/"

И я видел версию, а также пытался с ресурсами.view.helperPath.Application_View_Helper_, кажется, ничто не заставляет его работать.

Конечно, у меня есть форма Users.php, где я создаю элемент 'date':


    // Add a dateOfBirth element
    $element = new Application_Form_Element_Date('dateOfBirth');
    $this->addElement($element);

Конечно, у меня есть форма Users.php, где я создаю элемент 'date':


    // Add a dateOfBirth element
    $element = new Application_Form_Element_Date('dateOfBirth');
    $this->addElement($element);

И в моем сценарии просмотра, где отображаются ошибки:


    <? echo $form->dateOfBirth->formDate() ?>

Что яне хватает, чтобы заставить его работать?:-( Я провел целый день в поисках решений

Ответы [ 2 ]

1 голос
/ 28 марта 2012

Вы получаете эту ошибку, потому что в Zend_Form_Element такого метода нет.Я думаю, что вы пытаетесь использовать ваш помощник вида, чтобы каким-то образом отобразить этот элемент формы, но если это так, то лучше использовать декораторы форм.Вы можете использовать стандартные декораторы или создать свой собственный.Проверьте документацию для получения дополнительной информации - http://framework.zend.com/manual/en/zend.form.decorators.html

0 голосов
/ 29 марта 2012

, чтобы правильно использовать помощник вида для этих данных, вы бы использовали его следующим образом:

По вашему мнению (.phtml)

//a view helper should act on a piece of data and return something
//so I assume your formDate() helper takes a date value and reformats it.
<?php echo $this->formDate($this->form->dateOfBirth) ?>

при условии, что вы присвоили свою форму виду в вашем контроллере, используя стандарт:

$this->view->form = $form;
...