在opencart管理面板中过滤所有产品< = 10数量

时间:2017-12-29 12:19:27

标签: php opencart

我想在我的管理面板中获取1到10个数量的所有产品 这是我的控制器中的数据:

    $enabled_product = $this->model_catalog_product->getTotalNumberOfEnabledProductsWithLessOrEqualTo10Quantity();

    $data['enabled_product'] = $enabled_product;

    $data['enabled_product_link'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&filter_quantity=10&filter_status=1', true);

    $data['enabled_product_link'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&filter_quantity<=10&filter_status=1', true);

我试图告诉网址我想要所有数量为&lt; = 10且status = 1的产品 这是网址:

http://local.loc/admin/index.php?route=catalog/product&token=lNcGHcKRXDz02nQlrw83sRB7UzV4HViz&filter_quantity<=10&filter_status=1

问题是,如果所有产品仅与特定数量相等,我可以获得所有产品。我也尝试了以下网址:

http://local.loc/admin/index.php?route=catalog/product&token=lNcGHcKRXDz02nQlrw83sRB7UzV4HViz&filter_quantity=10&filter_quantity=9&filter_quantity=8&filter_quantity=7&filter_quantity=6&filter_quantity=5&filter_status=1

但没有奏效。任何想法如何才能获得数量<= 10的所有产品?

2 个答案:

答案 0 :(得分:0)

从REST角度来看,你应该像在url

中那样传递它
&lesseq=10&filter_status=1

其中,对于filter_quantity变量,lesseq应为<=,但请检查REST URL design for greater than, less than operations 因为我相信你可以实现完全相同的答案

答案 1 :(得分:0)

使用以下方法之一:

admin\model\catalog\product.php

查找:$sql .= " AND p.quantity = '" . (int)$data['filter_quantity'] . "'";

有两场比赛。

将其更改为:$sql .= " AND p.quantity <= '" . (int)$data['filter_quantity'] . "'";

现在,这将显示数量为10或小于10的所有产品:

http://local.loc/admin/index.php?route=catalog/product&token=lNcGHcKRXDz02nQlrw83sRB7UzV4HViz&filter_quantity=10&filter_status=1

admin\controller\catalog\product.php

查找:'filter_quantity' => $filter_quantity,

之后添加:'filter_quantity_less' => isset($this->request->get['filter_quantity_less']) ? $this->request->get['filter_quantity_less'] : null,

admin\model\catalog\product.php

查找:if (isset($data['filter_quantity']) && !is_null($data['filter_quantity'])) {

有两个匹配,在他们之前添加:

if (isset($data['filter_quantity_less']) && !is_null($data['filter_quantity_less'])) {
    $sql .= " AND p.quantity <= '" . (int)$data['filter_quantity_less'] . "'";
}

现在你可以在url中使用它:

filter_quantity_less=10