Questions tagged «filter»

表示有关Magento中的过滤的问题(分层导航,集合过滤)

2
过滤Magento 2对象存储库
在Magento 2中,您可以使用产品存储库按产品属性进行过滤吗? 在Magento 2中,您可以使用搜索条件对象 \Magento\Framework\Api\SearchCriteriaInterface $searchCriteria, 和一个仓库 \Magento\Catalog\Api\ProductRepositoryInterface $productRepository, 提取对象列表 $searchCriteria->getPageSize(10); $list = $productRepository->getList($searchCriteria); 但是,searchCriteria对象没有(似乎?)具有直接过滤功能。搜索条件类确实具有添加名为filterGroups的方法。 #File: lib/internal/Magento/Framework/Api/SearchCriteria.php public function getFilterGroups() { $filterGroups = $this->_get(self::FILTER_GROUPS); return is_array($filterGroups) ? $filterGroups : []; } public function setFilterGroups(array $filterGroups = null) { return $this->setData(self::FILTER_GROUPS, $filterGroups); } 但是尚不清楚究竟是什么过滤组归功于PHP的无类型数组。 我如何使用Magento 2存储库执行类似的操作 向我展示所有带有[此特定SKU]的产品 显示[此日期]之后创建的所有产品 等等

3
addAttributeToFilter中的多条件(OR和AND)
如何在addAttributeToFilter中创建多条件? 我想要这样的SQL查询结果(附有图像): WHERE ((`e`.`news_from_date` > '2013-09-12') OR (`e`.`news_to_date` < '2013-09-12')) AND ((((`e`.`special_price` IS NULL))) OR (((`e`.`special_price` IS NOT NULL)) AND ((`e`.`special_from_date` < '2013-09-12') OR (`e`.`special_to_date` > '2013-09-12')))) $collection->addAttributeToFilter('special_price', array('null'=>'special_price'), 'left'); 谢谢
19 filter 

4
将列添加到网格(观察者)-where子句中的列“ store_id”含糊不清
我正在使用观察者方法在订单网格中添加一列: 在活动上-> sales_order_grid_collection_load_before我正在向集合中添加一个联接 在事件上-> core_block_abstract_prepare_layout_before我正在向网格添加一列 编辑更多信息: 活动(1): public function salesOrderGridCollectionLoadBefore($observer) { $collection = $observer->getOrderGridCollection(); $collection->addFilterToMap('store_id', 'main_table.store_id'); $select = $collection->getSelect(); $select->joinLeft(array('oe' => $collection->getTable('sales/order')), 'oe.entity_id=main_table.entity_id', array('oe.customer_group_id')); } 活动(2): public function appendCustomColumn(Varien_Event_Observer $observer) { $block = $observer->getBlock(); if (!isset($block)) { return $this; } if ($block->getType() == 'adminhtml/sales_order_grid') { /* @var $block Mage_Adminhtml_Block_Customer_Grid */ …

2
如何在不使用ui组件的情况下更改magento 2管理网格过滤器的日期格式?
下面some_grid_block.xml, 如何更改日历过滤器中的日期格式。 <?xml version="1.0"?> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> <body> <referenceBlock name="adminhtml.qrcode.grid.container"> <block class="Oneteam\Qrcode\Block\Grid" name="adminhtml.qrcode.grid" as="grid"> <arguments> <argument name="id" xsi:type="string">QrcodeGrid</argument> <argument name="dataSource" xsi:type="object">Oneteam\Qrcode\Model\ResourceModel\Qrcode\Collection</argument> <argument name="default_sort" xsi:type="string">qr_id</argument> <argument name="default_dir" xsi:type="string">desc</argument> </arguments> <block class="Magento\Backend\Block\Widget\Grid\Column\Filter\Date"> <filterRange name="created_at" class="Magento\Backend\Block\Widget\Grid\Column\Filter\Date"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="dataScope" xsi:type="string">created_at</item> <item name="label" xsi:type="string" translate="true">Created</item> </item> </argument> <filterDate name="from"> …

1
Magento 2:如何为管理网格加载预定义的过滤器值?
我想使用预定义的过滤器在管理员中创建指向自定义网格的链接。该网格由一个UI列表组件(XML)组成,并具有一个称为的列form_id,其设置如下: <column name="form_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> <item name="label" xsi:type="string" translate="true">Form id</item> </item> </argument> </column> 网格工作正常。我可以应用过滤器,并且一切正常。使用XHR请求可以很好地更新网格。 但是...我希望能够在某个时候预先定义过滤器的值。例如,我希望能够在按ID = 3进行过滤时打开网格。 因此,我已经尝试使用与XHR-request相同的URL参数加载页面,以及仅添加所需的参数: ?namespace=form_response_listing&search=&filters[placeholder]=true&filters[form_id][from]=3&filters[form_id][to]=3&paging[pageSize]=20&paging[current]=1 以及: ?filters[form_id][from]=3&filters[form_id][to]=3 两者都没有成功。那么,如何使用URL预填充过滤器? 编辑: 我不确定这是否与其他问题重复(如下面的评论中所述)。就我而言,我将虚拟类型用作网格的集合: <virtualType name="Vendor\Module\Model\ResourceModel\Response\Grid\Collection" type="Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult"> <arguments> <argument name="mainTable" xsi:type="string">vendormodule_form_response</argument> <argument name="resourceModel" xsi:type="string">Vendor\Module\Model\ResourceModel\Response</argument> </arguments> </virtualType> 因此,并不是我的网格小部件具有物理的Block类,而是纯粹使用列出XML的UI组件创建的。 不过,无论如何,我都会检查所提到的问题是否对我的用例有用。
14 magento2  admin  grid  filter 

1
如何指定产品收集的自定义排序顺序?
我正在尝试基于产品ID数组创建一个产品集合,并根据ID数组对集合进行排序。 $productIds = array(318,310,311); $collection = Mage::getModel('catalog/product') ->getCollection() ->setOrder('entity_id', 'asc') // This will not do the job ->addAttributeToSelect('*') ->addAttributeToFilter('status', 1) ->addAttributeToFilter('entity_id', array( 'in' => $productIds, )); 我想对收集的数据进行排序,因为它们出现在$productIds数组中,318, 310, 311但是上面的代码将返回收集的排序,如310,311, 312。 如果不使用下面给出的简单MySQL查询,是否可以做到这一点? SELECT * FROM catalog_product_entity WHERE entity_id IN (318, 310, 311) ORDER BY FIELD(entity_id, 318, 310, 311);

1
Magento 2-具有分层导航和分页的所有产品页面
我想创建一个与所有的产品页面filters,toolbar,pagination。 我可以通过使用名称创建一个新类别All Products并为其分配所有产品来做到这一点。但是我想这不是一个好方法,好像每次将新产品添加到网站时,也应该将其添加到“所有产品”类别中。人为错误的可能性很大。 有没有一种方法可以用根目录类别调用类别页面?喜欢来自ID: 2 如果有人不想为我编写代码是可以的,但是如果有人可以帮助我找到一种做到这一点的方法,那就太好了。


5
如何按库存数量获取产品?
我有以下代码: umask(0); Mage::app(); $category =new Mage_Catalog_Model_Category(); $category->load($cid); if ($status == "2") { $products = Mage::getModel('catalog/product')->getCollection() ->addAttributeToSelect('*') ->addFieldToFilter('status',Mage_Catalog_Model_Product_Status::STATUS_DISABLED); $products->load(); } if ($status == "1") { $products = Mage::getModel('catalog/product')->getCollection() ->addAttributeToSelect('*'); $products->load(); } 我想添加一个库存数量过滤器来过滤产品,我尝试过: $products = Mage::getModel('catalog/product')->getCollection() ->addAttributeToSelect('*'); **->addAttributeToFilter('qty', array("gt" => 0));** 但是不成功,有什么想法吗?
10 product  filter 

4
如何过滤不在类别中的产品?
这是我的代码: $catIds = array(7,8,9); $collection = Mage::getModel('catalog/product')->getCollection() ->addAttributeToSelect("*"); ->addAttributeToFilter('category_ids', array('nin' => $catIds)); 我想获取所有不在类别ID列表中的产品,但是我的代码未提供预期的结果。请给我指路,谢谢。

2
Magento 2:按多个类别过滤产品集合(Magento 2.1)
我正在使用Magento 2.1.0,目前在过滤具有多个类别的产品集合时遇到困难。我已经使用了多种方法来使其工作,但是没有成功。 假设: $catalog_ids = [618, 619, 620]; 返回NULL $productCollection = $this->productCollectionFactory->create() ->addAttributeToSelect('*') ->addCategoriesFilter(array('in' => $catalog_ids)); 返回异常:无效的属性名称:category_id $productCollection = $this->productCollectionFactory->create() ->addAttributeToSelect('*') ->addAttributeToFilter('category_id', array( 'finset' => $catalog_ids )); 返回语法错误或访问冲突 $productCollection = $this->productCollectionFactory->create() ->addAttributeToSelect('*') ->addAttributeToFilter('category_ids', array( 'finset' => $catalog_ids )); 关于如何进行这项工作或将某些内容链接到这项工作的任何建议?

1
Magento 2:分面数据如何用于分层导航?
我已经为类别页面上的自定义过滤器创建了模块,除分层导航中的价格范围外,其他所有功能都正常运行。 请任何人都可以向我解释getFacetedData('price')在magento2中的工作方式 $productCollection->getFacetedData('price'); 此功能为我提供的价格范围基于默认产品集合,而不是基于我的过滤集合。 仅供参考:我已经过滤了以下集合, $productCollection = $layer->getProductCollection() ->clear() ->addAttributeToSelect(['name','price']) ->addAttributeToFilter('sku', array('in' => ['sku1','sku2']));

2
Magento 2:如何在产品网格中重置过滤器?
我已经每页的设置更改为500在目录产品网格页。它无法加载那么多产品,并给了我错误。现在它以某种方式保存在某个地方,并且每次我访问“产品网格”页面时,它都无法加载产品并给出错误。 如何在“产品网格”页面中重置过滤器设置?

2
Magento过滤器收集的创建时间(今天,昨天,星期,小时等)
我有一个自定义集合,希望按创建日期和“昨天”创建的het条目进行过滤 馆藏条目 //dates are set in controller using setCreatedTime(Mage::getModel('core/date')->gmtDate()); 昨天创建(无效) //3 products items Yesterday //below filtering outputs incorrect entries $collection = Mage::getModel('things/things')->getCollection(); 我试过了,但是输出不正确; //thought strtotime('yesterday') would work.. $collection->addFieldToFilter('created_time', array('gt' => Mage::getModel('core/date')->date('Y-m-d H:i:s', strtotime('yesterday')))); $collection->addFieldToFilter('created_time', array('gt' => Mage::getModel('core/date')->date('Y-m-d H:i:s', strtotime('-1 day')))); $collection->addFieldToFilter('created_time', array('from'=> strtotime('-1 day', time()),'to'=> time(),'datetime' => true)); $fromDate = …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.