我创建了一个动作助手文件路径
C:\ XAMPP \ htdocs中\ ECOM \应用\控制器\助手
文件名: 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 \应用\视图\助手
文件名: 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)
}
}
}
这个功能
$这 - > _helper-> Inputdata-> fetch_db_value
给出错误
答案 0 :(得分:0)
Re:动作助手:
操作助手上的命名空间前缀为Zend_
。自动加载器将在Zend Framework库所在的位置查找它。为了使自动加载器(在本例中为资源加载器)在application/controllers/helpers
中查找操作助手,名称空间前缀必须是appnamespace
,通常是Application_
。因此,将类重命名为Application_Controller_Helper_Inputdata
应该可以解决问题。
Re:视图助手:
类似的事情适用。通常,您将使用appnamespace前缀Application_
。因此,将类重命名为Application_View_Helper_Comman
应该可以在视图脚本中访问displayProducts()
方法:
$this->comman()->displayProducts($res)
您提到在控制器中引用view-helper方法。通常没有这样做; view-helpers通常仅在视图脚本中引用。但是,如果您真的想这样做,可以通过View对象访问它。在控制器中:
$this->_view->comman()->displayProducts($res)
如果该view-helper仅包含该单displayProducts()
方法,则可以将该类重命名为Application_View_Helper_DisplayProducts
,并使用以下命令在视图脚本中引用该方法:
$this->displayProducts($res)