Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对非对象上的成员函数getBackend()的magento web服务筛选器产品列表错误调用_Magento - Fatal编程技术网

对非对象上的成员函数getBackend()的magento web服务筛选器产品列表错误调用

对非对象上的成员函数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

我正在使用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()

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'],“复杂过滤器”=>