对非对象上的成员函数getBackend()的magento web服务筛选器产品列表错误调用
我正在使用VisualStudio2010服务引用来使用MagentoSOAPv2API web服务 在windows 7 iis 7.5上安装php 5.3.8、magento 1.6 我可以登录并列出所有产品,但一旦我设置了过滤器,就会出现异常 对非对象调用成员函数getBackend() php错误日志: PHP致命错误:在第816行的C:\inetpub\wwwroot\Magento1620\app\code\core\Mage\Eav\Model\Entity\Abstract.PHP中对非对象调用成员函数getBackend()对非对象上的成员函数getBackend()的magento web服务筛选器产品列表错误调用,magento,Magento,我正在使用VisualStudio2010服务引用来使用MagentoSOAPv2API web服务 在windows 7 iis 7.5上安装php 5.3.8、magento 1.6 我可以登录并列出所有产品,但一旦我设置了过滤器,就会出现异常 对非对象调用成员函数getBackend() php错误日志: PHP致命错误:在第816行的C:\inetpub\wwwroot\Magento1620\app\code\core\Mage\Eav\Model\Entity\Abstract.PH
static void TestMagentoSoapV2Wcf()
{
MagentoService magentoService = new MagentoService();
MageSvcRef.associativeEntity assoEntity = new MageSvcRef.associativeEntity();
assoEntity.key = "like";
assoEntity.value = "n2610";
MageSvcRef.complexFilter complexFilter = new MageSvcRef.complexFilter();
complexFilter.key = "sku";
complexFilter.value = assoEntity;
MageSvcRef.complexFilter[] compFilters = new MageSvcRef.complexFilter[1];
compFilters[0] = complexFilter;
MageSvcRef.filters filters = new MageSvcRef.filters();
filters.complex_filter = compFilters;
string sessionId = magentoService.login("zzc000", "zzc000");
var products = magentoService.catalogProductList(sessionId, filters, string.Empty);
}
请帮忙
谢谢这似乎是一个Magento bug,但我不确定,因为我不是PHP开发人员,它可能只反映了windows上安装的Magento和PHP 修改此文件
\app\code\core\Mage\Catalog\Model\Product\Api\V2.php
第57-62行
foreach ($filters->complex_filter as $_filter) {
$_value = $_filter->value;
$preparedFilters[$_filter->key] = array(
$_value->key => $_value->value
);
}
到
我还注意到,在不同的V2.php文件中,这段代码的编写方式不同。客户API与产品相同,但订单API是这样编写的
foreach ($filters->complex_filter as $_filter) {
$_value = $_filter->value;
if(is_object($_value)) {
$preparedFilters[][$_filter->key] = array(
$_value->key => $_value->value
);
} elseif(is_array($_value)) {
$preparedFilters[][$_filter->key] = array(
$_value['key'] => $_value['value']
);
} else {
$preparedFilters[][$_filter->key] = $_value;
}
}
任何人都可以指出PHP中正确的数组用法?这似乎是一个Magento bug,但我不确定,因为我不是PHP开发人员,它可能只反映了windows上安装的Magento和PHP 修改此文件
\app\code\core\Mage\Catalog\Model\Product\Api\V2.php
第57-62行
foreach ($filters->complex_filter as $_filter) {
$_value = $_filter->value;
$preparedFilters[$_filter->key] = array(
$_value->key => $_value->value
);
}
到
我还注意到,在不同的V2.php文件中,这段代码的编写方式不同。客户API与产品相同,但订单API是这样编写的
foreach ($filters->complex_filter as $_filter) {
$_value = $_filter->value;
if(is_object($_value)) {
$preparedFilters[][$_filter->key] = array(
$_value->key => $_value->value
);
} elseif(is_array($_value)) {
$preparedFilters[][$_filter->key] = array(
$_value['key'] => $_value['value']
);
} else {
$preparedFilters[][$_filter->key] = $_value;
}
}
任何人都可以指出PHP中正确的数组用法?API文档有时可能完全错误。转到yourmagentoinstall.com/api/v2_soap/?wsdl,获取所有api调用及其预期参数的列表。filters=['filter'=>[['key'=>'value']],'complex_filter'=>['updated_at'=>['gt'=>'2013-12-31 20:18:59']]]API文档有时可能完全错误。请转到yourmagentoinstall.com/API/v2_soap/?wsdl以获取所有API调用及其预期参数的列表。filters=['filter'=>['key'=>'value'],“复杂过滤器”=>