Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
QueryBuilder.php
Go to the documentation of this file.
1 <?php
6 namespace Magento\Framework\DB;
7 
12 {
18  protected $select;
19 
23  protected $criteria;
24 
30  protected $resource;
31 
35  protected $mapperFactory;
36 
40  protected $queryFactory;
41 
46  public function __construct(
47  \Magento\Framework\DB\MapperFactory $mapperFactory,
48  \Magento\Framework\DB\QueryFactory $queryFactory
49  ) {
50  $this->mapperFactory = $mapperFactory;
51  $this->queryFactory = $queryFactory;
52  }
53 
60  public function setCriteria(\Magento\Framework\Api\CriteriaInterface $criteria)
61  {
62  $this->criteria = $criteria;
63  }
64 
71  public function setResource(\Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource)
72  {
73  $this->resource = $resource;
74  }
75 
80  public function create()
81  {
82  $mapper = $this->criteria->getMapperInterfaceName();
83  $mapperInstance = $this->mapperFactory->create($mapper);
84  $select = $mapperInstance->map($this->criteria);
85  $query = $this->queryFactory->create(
86  \Magento\Framework\DB\Query::class,
87  [
88  'select' => $select,
89  'criteria' => $this->criteria,
90  'resource' => $this->resource
91  ]
92  );
93 
94  return $query;
95  }
96 }
setResource(\Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource)
__construct(\Magento\Framework\DB\MapperFactory $mapperFactory, \Magento\Framework\DB\QueryFactory $queryFactory)
setCriteria(\Magento\Framework\Api\CriteriaInterface $criteria)