Я создаю путь к файлу помощника действий
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
дает ошибку
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)