我在自定义命名空间的本地代码文件夹中创建了一个模块.该块未在前端显示,并且在检查异常日志时,事实证明Magento正在查找错误的位置.
Run Code Online (Sandbox Code Playgroud)exception ‘Mage_Core_Exception’ with message ‘Invalid block type: Mage_MyCompany_ForthcomingProducts_Block_List’ in /var/www/html/app/Mage.php:407
如果我在调用块时排除MyCompany_前缀也是如此; 它仍然在Mage命名空间中查找.我在modules文件夹中名为MyCompany_All.xml的文件中有这个,我添加的CMS布局工作正常,所以Magento肯定加载它:
<?xml version="1.0"?>
<config>
<modules>
<MyCompany_CmsLayouts>
<codePool>local</codePool>
<active>true</active>
</MyCompany_CmsLayouts>
<MyCompany_ForthcomingProducts>
<codePool>local</codePool>
<active>true</active>
</MyCompany_ForthcomingProducts>
</modules>
</config>
Run Code Online (Sandbox Code Playgroud)
有没有人对这是什么造成的?
{{block type="MyCompany_ForthcomingProducts/List" template="forthcomingproducts/list.phtml"}}
Run Code Online (Sandbox Code Playgroud)
该块的config.xml是:
<?xml version="1.0" encoding="utf-8"?>
<config>
<modules>
<MyCompany_ForthcomingProducts>
<version>0.9</version>
</MyCompany_ForthcomingProducts>
</modules>
<global>
<blocks>
<forthcomingproducts>
<class>MyCompany_ForthcomingProducts_Block</class>
</forthcomingproducts>
</blocks>
</global>
</config>
Run Code Online (Sandbox Code Playgroud)
尝试按如下方式调整块声明:
{{block type="forthcomingproducts/list" template="forthcomingproducts/list.phtml"}}
Run Code Online (Sandbox Code Playgroud)
在配置文件中,您为块(forthcomingproducts)定义了别名,现在您应该遵循它.Magento的将取消引用forthcomingproducts是MyCompany_ForthcomingProducts_Block为你的要求,那么追加资本类名(list),创建类名MyCompany_ForthcomingProducts_Block_List.当您使用Magento不知道的alis时(MyCompany_ForthcomingProducts在您的示例中),它被假定为Mage名称空间的一部分.
希望有所帮助,乔
| 归档时间: |
|
| 查看次数: |
8007 次 |
| 最近记录: |