collectionFactory = $collectionFactory; $this->collection = $this->collectionFactory->create(); $this->request = $request; } /** * {@inheritdoc} * @since 100.1.0 */ public function getData() { $this->getCollection()->addEntityFilter($this->request->getParam('current_product_id', 0)) ->addStoreData(); $arrItems = [ 'totalRecords' => $this->getCollection()->getSize(), 'items' => [], ]; foreach ($this->getCollection() as $item) { $arrItems['items'][] = $item->toArray([]); } return $arrItems; } /** * {@inheritdoc} * @since 100.1.0 */ public function addFilter(\Magento\Framework\Api\Filter $filter) { $field = $filter->getField(); if (in_array($field, ['review_id', 'created_at', 'status_id'])) { $filter->setField('rt.' . $field); } if (in_array($field, ['title', 'nickname', 'detail'])) { $filter->setField('rdt.' . $field); } if ($field === 'review_created_at') { $filter->setField('rt.created_at'); } parent::addFilter($filter); } }