Как Action helper взаимодействует с view helper

0

Я создаю путь к файлу помощника действий

C:\XAMPP\HTDOCS\ЭКОГО\приложения\Контроллеры\хелперы

имя файла: Inputdata.php

class Zend_Controller_Action_Helper_Inputdata extends Zend_Controller_Action_Helper_Abstract
{
    function Inputdata()
    {
        return $this;
    }


    function fetch_db_value($var)
        {
        if(get_magic_quotes_gpc()==0) {
            return is_array($var) ? array_map(array($this,'fetch_db_value'), $var) : nl2br(stripslashes(trim($var)));
            }else {
            return is_array($var) ? array_map(array($this,'fetch_db_value'), $var) : nl2br(trim($var));
            }
        }


    }

Я вызываю эту функцию на контроллере, выдавая результат как:

$dbData=$this->_helper->Inputdata->fetch_db_value($dbData); 

У меня также есть помощник вида, путь

C:\XAMPP\HTDOCS\Ecom\Application\Views\хелперы

имя файла: Comman.php

class Zend_View_Helper_Comman
{
    public function displayProducts($res){
                 # Res is a array           
                foreach($res as $val){
                  # $val also is sub array of array $res 
                  $val=$this->_helper->Inputdata->fetch_db_value($val); 
                  print_r($val)
                }
    }
}

эта функция

$this-> _ помощник → Inputdata-> fetch_db_value

дает ошибку

  1. любая идея о синтаксисе, как пользовательская функция-помощник пользовательской функции в представлении вспомогательной пользовательской функции
  2. синтаксис как функция вызова displayProducts() на контроллере
  • 0
    Просто один на один: как правило, это будет разделено на два отдельных вопроса.
Теги:
zend-framework

1 ответ

0

Re: Помощник действия:

Префикс пространства имен в вашем помощнике действий - Zend_. Автозагрузчик будет искать его в том месте, где находится библиотека Zend Framework. Для того, чтобы заряжания - загрузчик ресурсов, в данном случае - искать помощник действий в application/controllers/helpers, префикс пространства имен должно быть appnamespace, как правило, Application_. Поэтому переименование класса в Application_Controller_Helper_Inputdata должно сделать трюк.

Re: Помощник вида:

Аналогичная вещь применяется. Как правило, вы должны использовать префикс Application_. Поэтому переименование класса в Application_View_Helper_Comman должно сделать метод displayProducts() доступным в сценарии вида как:

$this->comman()->displayProducts($res)

Вы указываете ссылку на метод view-helper в контроллере. Обычно это не делается; Вики-помощники обычно ссылаются только на сценарии вида. Однако, если вы действительно хотите это сделать, вы можете получить к нему доступ через объект View. В контроллере:

$this->_view->comman()->displayProducts($res)

Если этот помощник вида только будет содержать этот единственный displayProducts(), вы можете переименовать этот класс в Application_View_Helper_DisplayProducts и ссылаться на этот метод в сценарии вида, используя:

$this->displayProducts($res)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню