Zend framework Zend View帮助程序奇怪的问题
我一直在本地主机(OS:Snow Leopard)上进行zend framework项目,当我在托管服务器(共享托管)上上载文件时,我在那里使用的视图帮助程序出现了一些错误 更具体地说:Zend framework Zend View帮助程序奇怪的问题,zend-framework,view,helper,base-url,Zend Framework,View,Helper,Base Url,我一直在本地主机(OS:Snow Leopard)上进行zend framework项目,当我在托管服务器(共享托管)上上载文件时,我在那里使用的视图帮助程序出现了一些错误 更具体地说: 项目结构如下:(我输入了一些不相关的子文件夹,论文中的数字在此仅供参考,不包含在项目中的文件夹名称中) 在helpers(1)文件夹中,我有一个view helper,BaseURL.php: class Zend_View_Helper_BaseURL { function baseURL()
项目结构如下:(我输入了一些不相关的子文件夹,论文中的数字在此仅供参考,不包含在项目中的文件夹名称中) 在helpers(1)文件夹中,我有一个view helper,BaseURL.php:
class Zend_View_Helper_BaseURL
{
function baseURL()
{
$fc = Zend_Controller_Front::getInstance();
return $fc->getBaseUrl();
}
}
例如,我在布局中使用它来编写CSS文件、JS文件等内容的路径,类似这样的内容:
<script src="<?php echo $this->baseURL();?>/public/js/somejavascript.js></script>
上面的错误是针对在管理布局(在管理模块中调用)中使用$this->baseURL()的行
起初我认为可能是因为helper是在另一个模块(默认模块)中声明的,它不是由框架在管理模块中找到的。但为什么一切都能在本地运行呢?我不明白。
另外,如果我在同一admin.phtml布局文件中将$this->baseURL()更改为$this->baseURL(),则在管理模块中,一切都可以正常工作(在线和本地)
如果有人能告诉我我错过了什么,我会很感激的
注:由于我还不清楚,也许有人可以告诉我:在一个模块中声明的助手在网站的所有模块中都可用?(当地开发部门告诉我是的,因为它在当地工作,但是上传的项目有什么问题?)
谢谢。如错误消息中所述,您需要在视图帮助程序前面加上
Cmsadmin\u view\u helper\u
而不是Zend\u view\u helper\u
。错误消息告诉它在哪些路径中查找各种前缀。检查此项
$this->baseUrl(“”)
保持参数为null可以解决此问题。
您将在布局和default.php中获得baseurl。替换此:-
<script src="<?php echo $this->baseURL();?>/public/js/somejavascript.js></script>
我想提两件事:1。我在cmsadmin模块中有一个助手,名为AdminBaseURL.php,代码是:类Zend_View_helper_AdminBaseURL{function AdminBaseURL(){$fc=Zend_Controller_Front::getInstance();return$fc->getBaseUrl().“cmsadmin/”;}}和2。不过,为什么我在现在的状态下使用baseUrl()而不是baseUrl()会起作用呢?还有第三件事要提:我在同一个文件夹中还有另一个名为Zend_View_helper_MediaDir的助手:cmsadmin/views/helpers,这个助手工作起来没有任何问题。
An error occurred
Application error
Exception information:
Message: Plugin by name 'BaseURL' was not found in the registry; used paths: Cmsadmin_View_Helper_: /path_to_site_like_public_html/application/modules/cmsadmin/views/helpers/ Zend_View_Helper_: Zend/View/Helper/
<script src="<?php echo $this->baseURL();?>/public/js/somejavascript.js></script>
<script src="<?php echo $this->baseUrl();?>/public/js/somejavascript.js></script>