filterBuilder = $filterBuilder; parent::__construct( $context, $components, $data ); } /** * Get component name * * @return string */ public function getComponentName() { return static::NAME; } /** * {@inheritdoc} */ public function getDataSourceData() { $dataSource = []; $id = $this->getContext()->getRequestParam($this->getContext()->getDataProvider()->getRequestFieldName(), null); $filter = $this->filterBuilder->setField($this->getContext()->getDataProvider()->getPrimaryFieldName()) ->setValue($id) ->create(); $this->getContext()->getDataProvider() ->addFilter($filter); $data = $this->getContext()->getDataProvider()->getData(); if (isset($data[$id])) { $dataSource = [ 'data' => $data[$id] ]; } elseif (isset($data['items'])) { foreach ($data['items'] as $item) { if ($item[$item['id_field_name']] == $id) { $dataSource = ['data' => ['general' => $item]]; } } } return $dataSource; } }