我想在我的管理面板中获取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的所有产品?
答案 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