上下文
我多次尝试创建一个提供一组自定义方法的Magento模块。
我正在使用Magento 1.6.2并遵循了许多教程,但我的上一次尝试是使用this web utility - Magento Module Creator。
在我尝试使用的模块配置中:Milyuncarros(作为命名空间)和Mobile(作为模块)。 其他诸如codePool和version之类的东西都保留为默认值(local,0.1.0)。
在“需要添加Magento API”选项中添加了一个方法:saleSearchCategories
。
网站本身告诉调用soap方法,例如:yourmodulename_api.yourmethod(对于我的情况,它将是Mobile_Api.saleSearchCategories或mobile_api.salesearchcategories - 两者都有问题:“无效的API路径”和“资源路径不可调用”分别地)。
模块禁用了缓存管理,我确保启用了Milyuncarros_Mobile模块。
经过多次尝试后,我还明确启用了Magento root的appache .htaccess中的“RewriteEngine On”(即作为/apps
的兄弟)。
问题
当我尝试调用我创建的soap方法(没有参数)时,我得到一个“资源路径不可调用”的SoapFault。
当前状态
生成的文件结构如下:
app / etc / modules / Milyuncarros_Mobile.xml(自动生成):
<?xml version="1.0"?>
<config>
<modules>
<Milyuncarros_Mobile>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Api />
</depends>
<version>0.1.0</version>
</Milyuncarros_Mobile>
</modules>
</config>
app / code / local / Milyuncarros / Mobile / Model / Api.php(自动生成+编辑):
<?php
class Milyuncarros_Mobile_Model_Api extends Mage_Api_Model_Resource_Abstract
{
public function saleSearchCategories()
{
//everything was generated but the following line
return array('active' => true);
}
}
app / code / local / Milyuncarros / Mobile / Helper / Data.php(自动生成):
<?php
class Milyuncarros_Mobile_Helper_Data extends Mage_Core_Helper_Abstract
{
}
app / code / local / Milyuncarros / Mobile / etc / api.xml(自动生成):
<?xml version="1.0"?>
<config>
<api>
<resources>
<mobile_api translate="title" module="mobile">
<title>Myapi</title>
<acl>mobile/api</acl>
<model>mobile/api</model>
<methods>
<salesearchcategories translate="title" module="mobile">
<title>Categories listed as public sale searchable</title>
<acl>mobile/salesearchcategories</acl>
</salesearchcategories>
</methods>
</mobile_api>
</resources>
<acl>
<resources>
<mobile translate="title" module="mobile">
<title>Mobile</title>
<sort_order>2000</sort_order>
<salesearchcategories translate="title" module="mobile">
<title>Categories listed as public sale searchable</title>
</salesearchcategories>
</mobile>
</resources>
</acl>
</api>
</config>
(我根据此规范尝试了mobile_api
。salesearchcategories
。
最后 - 但最重要的是 - 模块配置文件: app / code / local / Milyuncarros / Mobile / etc / config.xml(自动生成):
<?xml version="1.0"?>
<config>
<modules>
<Milyuncarros_Mobile>
<version>0.1.0</version>
</Milyuncarros_Mobile>
</modules>
<global>
<helpers>
<mobile>
<class>Milyuncarros_Mobile_Helper</class>
</mobile>
</helpers>
<models>
<mobile>
<class>Milyuncarros_Mobile_Model</class>
<resourceModel>mobile_mysql4</resourceModel>
</mobile>
</models>
</global>
</config>
问题:当我尝试调用mobile_api.salesearchcategories时出现错误:
SoapFault:资源路径不可调用。
我该怎么做才能停止收到错误?该文档几乎没有任何关于(或者它太难以被搜索,我没有找到它)。
答案 0 :(得分:1)
我解决了。该模块格式良好(因为我使用了一个众所周知的生成器)。
我做的是:
然后它有效:我可以使用mobile_api.salesearchcategories达到我的入口点。