request = $request; //var_dump($this->request->getParams());die(); parent::__construct($name, $primaryFieldName, $requestFieldName, $meta, $data); //var_dump($collectionFactory);die(); $this->collection = $collectionFactory;//->addFieldToFilter('entity_id',$this->request->getParam('id'));//->create(); $this->addFieldStrategies = $addFieldStrategies; $this->addFilterStrategies = $addFilterStrategies; } /** * Get collection * * @return \[Namespace]\[Module]\Model\FooBar\Collection */ public function getCollection() { $collection = $this->collection; return $this->addCollectionFilters($collection); } protected function addCollectionFilters(Collection $collection) { /*foreach($collection as $item){ var_dump($item); }die();*/ //var_dump($collection);die(); //$collection = $collection->create(); return $collection;//->addFieldToFilter('devis_id',$this->request->getParam('id')); } /** * Get data * * @return array */ public function getData() { if (!$this->getCollection()->isLoaded()) { $this->getCollection()->load(); } //var_dump($this->getCollection()->toArray());die(); $items = $this->getCollection()->toArray(); return [ 'totalRecords' => $this->getCollection()->getSize(), 'items' => array_values($items), ]; } /** * Add field to select * * @param string|array $field * @param string|null $alias * @return void */ public function addField($field, $alias = null) { if (isset($this->addFieldStrategies[$field])) { $this->addFieldStrategies[$field]->addField($this->getCollection(), $field, $alias); } else { parent::addField($field, $alias); } } /** * {@inheritdoc} */ public function addFilter(\Magento\Framework\Api\Filter $filter) { if (isset($this->addFilterStrategies[$filter->getField()])) { $this->addFilterStrategies[$filter->getField()] ->addFilter( $this->getCollection(), $filter->getField(), [$filter->getConditionType() => $filter->getValue()] ); } else { parent::addFilter($filter); } } }