【问题标题】:How can I add the filter so that API call is returning just the results that I want?如何添加过滤器以便 API 调用只返回我想要的结果?
【发布时间】:2018-03-30 10:43:56
【问题描述】:

这是我到目前为止得到的,但它不起作用。

public function getCompleteness(){
    $searchBuilder = new AkeneoSearchBuilder();
    $searchBuilder->addFilter('completeness', '=', 100);

    try {
        $products = $this->apiClient->getProductApi()->all(
            50,
            [
                'search' => $searchBuilder->getFilters(),
                'scope' => 'ecommerce'
            ]
        );
    } catch (HttpException $e){
        echo "Message: " . $e->getMessage();
        echo "Code: " . $e->getCode();
    }

    return $products;
}

}

这是我尝试从 Akeneo API 使用的调用。

{{url}}/api/rest/v1/products?search={"completeness":[{"operator":"=","value":100,"scope":"ecommerce"}]}

如何使用 GetCompleteness() 方法以产生一些结果?我在使用 AkeneoSearchBuilder() 时遇到问题;

【问题讨论】:

  • 你想达到什么目的?什么不起作用?你有任何错误信息吗?有没有按照 Akeneo 官方 php 客户端 github.com/akeneo/api-php-client/blob/master/README.md 的自述文件进行操作?
  • 感谢 grena 的回复。嗯,是的。但是我收到一个错误,范围不正确。
  • 这是我第一次使用 AkeneoSearchBuilder,所以我可能在里面做错了什么。

标签: php filter akeneo


【解决方案1】:

当你这样做时:

$searchBuilder = new AkeneoSearchBuilder();
$searchBuilder->addFilter('completeness', '=', 100);
$products = $this->apiClient->getProductApi()->all(
    50,
    [
        'search' => $searchBuilder->getFilters(),
        'scope' => 'ecommerce'
    ]
);

这基本上意味着:“对于所有在“未定义”范围内完成的产品,给我他们所有的“电子商务”值”。

您想要实现的是(我猜):“对于所有在“电子商务”范围内完成的产品,给我它们的所有值”。

正如你在官方文档中看到的completeness filter,你需要指定一个范围:

$searchBuilder = new AkeneoSearchBuilder();
$searchBuilder->addFilter('completeness', '=', 100, ['scope' => 'ecommerce']);

现在您可以通过调用来检索它们的值:

$products = $this->apiClient->getProductApi()->all(
    50,
    [
        'search' => $searchBuilder->getFilters()
    ]
);

请注意,我在这里删除了“范围”参数。

继续:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-15
    • 2017-08-07
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多