当前位置: 首页>>代码示例>>PHP>>正文


PHP Collection::addAttributeToFilter方法代码示例

本文整理汇总了PHP中Magento\Catalog\Model\Resource\Product\Collection::addAttributeToFilter方法的典型用法代码示例。如果您正苦于以下问题:PHP Collection::addAttributeToFilter方法的具体用法?PHP Collection::addAttributeToFilter怎么用?PHP Collection::addAttributeToFilter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Magento\Catalog\Model\Resource\Product\Collection的用法示例。


在下文中一共展示了Collection::addAttributeToFilter方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: getProducts

 /**
  * Get products by IDs
  * @param array    $productIds
  * @param null|int $chunkSize
  * @param bool     $filterVisibility
  * @return \Magento\Catalog\Model\Resource\Product\Collection
  */
 public function getProducts(array $productIds = [], $chunkSize = null, $filterVisibility = true)
 {
     $this->_productCollection->addAttributeToSelect('sku')->addAttributeToSelect($this->_config->getProductAttributes())->addAttributeToSelect('status')->addAttributeToSelect('visibility');
     if ($filterVisibility) {
         $this->_productCollection->addAttributeToFilter('visibility', ['in' => [Visibility::VISIBILITY_IN_CATALOG, Visibility::VISIBILITY_BOTH]])->addAttributeToFilter('status', Status::STATUS_ENABLED);
     }
     if (!empty($productIds)) {
         $this->_productCollection->addIdFilter($productIds);
     }
     if ($chunkSize !== null) {
         $this->_productCollection->setPageSize($chunkSize);
     }
     return $this->_productCollection;
 }
开发者ID:halk,项目名称:recowise-magento2-demo,代码行数:21,代码来源:Product.php

示例2: prepareData

 /**
  * Prepare configurable data for export
  *
  * @param \Magento\Catalog\Model\Resource\Product\Collection $collection
  * @param int $productIds
  * @return void
  */
 public function prepareData($collection, $productIds)
 {
     $collection->addAttributeToFilter('entity_id', ['in' => $productIds])->addAttributeToFilter('type_id', ['eq' => \Magento\ConfigurableProduct\Model\Product\Type\Configurable::TYPE_CODE]);
     while ($product = $collection->fetchItem()) {
         $productAttributesOptions = $product->getTypeInstance()->getConfigurableOptions($product);
         foreach ($productAttributesOptions as $productAttributeOption) {
             $this->configurableData[$product->getId()] = [];
             $variations = [];
             $variationsPrices = [];
             $variationsLabels = [];
             foreach ($productAttributeOption as $optValues) {
                 $variations[$optValues['sku']][] = $optValues['attribute_code'] . '=' . $optValues['option_title'];
                 $priceType = $optValues['pricing_is_percent'] ? 'percent' : 'fixed';
                 $variationsPrices[] = 'name=' . $optValues['attribute_code'] . ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR . 'value=' . $optValues['option_title'] . ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR . 'price=' . $optValues['pricing_value'] . ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR . 'price_type=' . $priceType;
                 if (!empty($optValues['super_attribute_label'])) {
                     $variationsLabels[$optValues['attribute_code']] = $optValues['attribute_code'] . '=' . $optValues['super_attribute_label'];
                 }
             }
             foreach ($variations as $sku => $values) {
                 $variations[$sku] = 'sku=' . $sku . ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR . implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $values);
             }
             $variations = implode(ImportProduct::PSEUDO_MULTI_LINE_SEPARATOR, $variations);
             $variationsPrices = array_unique($variationsPrices);
             $variationsPrices = implode(ImportProduct::PSEUDO_MULTI_LINE_SEPARATOR, $variationsPrices);
             $variationsLabels = implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $variationsLabels);
             $this->configurableData[$product->getId()] = ['configurable_variations' => $variations, 'configurable_variation_prices' => $variationsPrices, 'configurable_variation_labels' => $variationsLabels];
         }
     }
 }
开发者ID:niranjanssiet,项目名称:magento2,代码行数:36,代码来源:RowCustomizer.php

示例3: prepareData

 /**
  * Prepare configurable data for export
  *
  * @param \Magento\Catalog\Model\Resource\Product\Collection $collection
  * @param int $productIds
  * @return void
  */
 public function prepareData($collection, $productIds)
 {
     $collection->addAttributeToFilter('entity_id', array('in' => $productIds))->addAttributeToFilter('type_id', array('eq' => \Magento\ConfigurableProduct\Model\Product\Type\Configurable::TYPE_CODE));
     while ($product = $collection->fetchItem()) {
         $productAttributesOptions = $product->getTypeInstance()->getConfigurableOptions($product);
         foreach ($productAttributesOptions as $productAttributeOption) {
             $this->configurableData[$product->getId()] = array();
             foreach ($productAttributeOption as $optionValues) {
                 $priceType = $optionValues['pricing_is_percent'] ? '%' : '';
                 $this->configurableData[$product->getId()][] = array('_super_products_sku' => $optionValues['sku'], '_super_attribute_code' => $optionValues['attribute_code'], '_super_attribute_option' => $optionValues['option_title'], '_super_attribute_price_corr' => $optionValues['pricing_value'] . $priceType);
             }
         }
     }
 }
开发者ID:Atlis,项目名称:docker-magento2,代码行数:21,代码来源:RowCustomizer.php

示例4: addAttributeToFilter

 /**
  * Add attribute to filter
  *
  * @param AbstractAttribute|string $attribute
  * @param array|null $condition
  * @param string $joinType
  * @return $this
  */
 public function addAttributeToFilter($attribute, $condition = null, $joinType = 'inner')
 {
     switch ($attribute) {
         case 'rt.review_id':
         case 'rt.created_at':
         case 'rt.status_id':
         case 'rdt.title':
         case 'rdt.nickname':
         case 'rdt.detail':
             $conditionSql = $this->_getConditionSql($attribute, $condition);
             $this->getSelect()->where($conditionSql);
             break;
         case 'stores':
             $this->setStoreFilter($condition);
             break;
         case 'type':
             if ($condition == 1) {
                 $conditionParts = array($this->_getConditionSql('rdt.customer_id', array('is' => new \Zend_Db_Expr('NULL'))), $this->_getConditionSql('rdt.store_id', array('eq' => \Magento\Store\Model\Store::DEFAULT_STORE_ID)));
                 $conditionSql = implode(' AND ', $conditionParts);
             } elseif ($condition == 2) {
                 $conditionSql = $this->_getConditionSql('rdt.customer_id', array('gt' => 0));
             } else {
                 $conditionParts = array($this->_getConditionSql('rdt.customer_id', array('is' => new \Zend_Db_Expr('NULL'))), $this->_getConditionSql('rdt.store_id', array('neq' => \Magento\Store\Model\Store::DEFAULT_STORE_ID)));
                 $conditionSql = implode(' AND ', $conditionParts);
             }
             $this->getSelect()->where($conditionSql);
             break;
         default:
             parent::addAttributeToFilter($attribute, $condition, $joinType);
             break;
     }
     return $this;
 }
开发者ID:zhangjiachao,项目名称:magento2,代码行数:41,代码来源:Collection.php


注:本文中的Magento\Catalog\Model\Resource\Product\Collection::addAttributeToFilter方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。