Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
TermDropdownStrategy.php
Go to the documentation of this file.
1 <?php
8 
11 use Magento\Eav\Model\Config as EavConfig;
13 
23 {
27  private $aliasResolver;
28 
32  private $eavConfig;
33 
37  private $selectBuilder;
38 
49  public function __construct(
52  EavConfig $eavConfig,
53  $scopeConfig,
54  AliasResolver $aliasResolver,
55  SelectBuilder $selectBuilder = null
56  ) {
57  $this->eavConfig = $eavConfig;
58  $this->aliasResolver = $aliasResolver;
59  $this->selectBuilder = $selectBuilder ?: ObjectManager::getInstance()->get(SelectBuilder::class);
60  }
61 
66  public function apply(
67  \Magento\Framework\Search\Request\FilterInterface $filter,
68  \Magento\Framework\DB\Select $select
69  ) {
70  $alias = $this->aliasResolver->getAlias($filter);
71  $attribute = $this->getAttributeByCode($filter->getField());
72  $this->selectBuilder->execute((int)$attribute->getId(), $alias, $select);
73 
74  return true;
75  }
76 
82  private function getAttributeByCode($field)
83  {
84  return $this->eavConfig->getAttribute(\Magento\Catalog\Model\Product::ENTITY, $field);
85  }
86 }
$storeManager
apply(\Magento\Framework\Search\Request\FilterInterface $filter, \Magento\Framework\DB\Select $select)
__construct( $storeManager, $resourceConnection, EavConfig $eavConfig, $scopeConfig, AliasResolver $aliasResolver, SelectBuilder $selectBuilder=null)
if(!trim($html)) $alias
Definition: details.phtml:20