【问题标题】:Filter all products <= 10 quantity in opencart admin panel在 opencart 管理面板中过滤所有产品 <= 10 数量
【发布时间】:2017-12-29 22:59:20
【问题描述】:

我想在我的管理面板中获取数量在 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);

我试图告诉 url 我想要所有数量

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

但是没有用。任何想法我怎样才能获得数量

【问题讨论】:

  • 将数字传递给一个变量,并将比较传递给另一个变量。
  • 你能举个例子吗
  • 你的 OpenCart 版本是多少?

标签: php opencart


【解决方案1】:

使用以下方法之一:

admin\model\catalog\product.php

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

有两个匹配项。

将它们更改为:$sql .= " AND p.quantity &lt;= '" . (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' =&gt; $filter_quantity,

在后面添加:'filter_quantity_less' =&gt; isset($this-&gt;request-&gt;get['filter_quantity_less']) ? $this-&gt;request-&gt;get['filter_quantity_less'] : null,

admin\model\catalog\product.php

查找:if (isset($data['filter_quantity']) &amp;&amp; !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

【讨论】:

    【解决方案2】:

    从 REST 的角度来看,您应该像在 url 中那样传递它

    &lesseq=10&filter_status=1
    

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多