Php 为什么Magento试图调用Mage名称空间而不是我的自定义名称空间?
我在自定义名称空间的本地代码文件夹中创建了一个模块。 该块没有显示在前端,在检查异常日志时,发现Magento找错了位置 如果在调用块时排除MyCompany_uuu前缀,也会出现同样的情况;它仍然在Mage名称空间中查找。 我在modules文件夹中有一个名为MyCompany_All.xml的文件,我添加的CMS布局工作正常,因此Magento肯定正在加载它:Php 为什么Magento试图调用Mage名称空间而不是我的自定义名称空间?,php,magento,Php,Magento,我在自定义名称空间的本地代码文件夹中创建了一个模块。 该块没有显示在前端,在检查异常日志时,发现Magento找错了位置 如果在调用块时排除MyCompany_uuu前缀,也会出现同样的情况;它仍然在Mage名称空间中查找。 我在modules文件夹中有一个名为MyCompany_All.xml的文件,我添加的CMS布局工作正常,因此Magento肯定正在加载它: <?xml version="1.0"?> <config> <modules>
<?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>
块的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>
0.9
MyCompany\u for HComingProducts\u Block
尝试按如下方式调整块声明:
{{block type="forthcomingproducts/list" template="forthcomingproducts/list.phtml"}}
在配置文件中,您为块定义了别名(forthcomingproducts
),现在您应该遵循它。Magento将根据您的要求将forthcomingproducts
取消引用为MyCompany\u forthcomingproducts\u Block
,然后追加大写的类名(list
),创建类名MyCompany\u forthcomingproducts\u Block\u list
。当您使用Magento不知道的ALI时(MyCompany\u ForthcomingProducts
,在您的示例中),假定它是Mage命名空间的一部分
希望有帮助,
Joe我认为layout.xml或调用此块的代码是相关的查找位置。为了进行诊断,我想看看这个,也许还有相关块的config.xml。非常感谢您的回答,我已经在问题中添加了信息。谢谢Joe!Magento现在已停止抛出异常,因此我假设它已找到模块。有另一个问题,但我会看看我是否可以先解决它!
<?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>
{{block type="forthcomingproducts/list" template="forthcomingproducts/list.phtml"}}