Eri*_*icP 8 php zend-framework zend-view
我有一个叫做的帮助器Zend_View_Helper_FormVars,我的一个模块使用过它.我也有一个共同的帮手application/common/helpers/GeneralFunctions.php
我试图调用一个函数从Zend_View_Helper_FormVars该公司在 GeneralFunctions.php.
这是以下的简短版本Zend_View_Helper_FormVars:
class Zend_View_Helper_FormVars
{
public $reqFieldVisual='<span class="req">*</span>';
public $roles=array('admin'=>'admin', 'user'=>'user');
public $paymentMethods=array('1'=>'Check', '2'=>'Credit Card',
'3'=>'Cash', '4'=>'Other');
public function formVars(){
$this->baseUrl=Zend_Controller_Front::getInstance()->getBaseUrl();
return $this;
}
public function mkCategoryCodeSelectGroup($codeTypeArr=array(),
$codesArr=array()) {
$html='';
$html.=Zend_View_Helper_GeneralFunctions::generalFunctions()->progressMeter();
return $html;
}
}
Run Code Online (Sandbox Code Playgroud)
这是以下代码GeneralFunctions.php:
class Zend_View_Helper_GeneralFunctions
{
public function generalFunctions(){
$this->baseUrl=Zend_Controller_Front::getInstance()->getBaseUrl();
return $this;
}
public function progressMeter() {
$html='';
$html.='<span id="progressWrapper">';
$html.='<span id="progressMeter"></span>';
$html.='</span>';
$html.='';
return $html;
}
}
Run Code Online (Sandbox Code Playgroud)
另外,忘了提一下我GeneralFunctions在这样的Bootstrap中自动加载了帮助器,它已经可用于我的所有模块了:
$view->addHelperPath(APPLICATION_PATH .'/common/helpers', 'View_Helper');
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的,但是收到错误:
// application/Bootstrap.php ----------->
function _initViewHelpers() {
// add a helper for use for all modules
$view->addHelperPath(APPLICATION_PATH .'/Common/Helper', 'Common_Helper');
}
//-------------------->
// application/common/helpers/General.php ----------->
class Zend_View_Helper_General extends Zend_View_Helper_Abstract
{
public function general(){
return $this;
}
public function test(){
return 'test 123';
}
}
//-------------------->
// application/modules/dashboard/views/helpers/DashboardHelper.php ----------->
class Zend_View_Helper_DashboardHelper extends Common_Helper_General
{
public function dashboardHelper(){
return $this;
}
public function dashboardTest(){
return 'from dashboard';
}
}
//-------------------->
// application/modules/dashboard/views/scripts/index/index.phtml ----------->
echo $this->dashboardHelper()->test();
//-------------------->
Run Code Online (Sandbox Code Playgroud)
我得到的错误消息:
致命错误:第2行的/Applications/MAMP/htdocs/mysite/application/modules/dashboard/views/helpers/DashboardHelper.php中找不到"Common_Helper_General"类
Dav*_*unt 14
调用另一个View Helper实际上非常简单.
确保您的视图助手扩展Zend_View_Helper_Abstract,以便它可以访问$view.然后你可以像在视图中那样简单地调用助手,即
$this->view->generalFunctions()->progressMeter();
Run Code Online (Sandbox Code Playgroud)
根据您的上述示例:
<?php
class Zend_View_Helper_FormVars extends Zend_View_Helper_Abstract {
/* ... */
public function mkCategoryCodeSelectGroup($codeTypeArr=array(),
$codesArr=array()) {
$html='';
$html. $this->view->generalFunctions()->progressMeter();
return $html;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9527 次 |
| 最近记录: |