123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Ui\Component;
- use Magento\Framework\Api\FilterBuilder;
- use Magento\Framework\View\Element\UiComponent\ContextInterface;
- use Magento\Framework\View\Element\UiComponentInterface;
- /**
- * @api
- * @since 100.0.2
- */
- class Form extends AbstractComponent
- {
- const NAME = 'form';
- /**
- * @var FilterBuilder
- */
- protected $filterBuilder;
- /**
- * @param ContextInterface $context
- * @param FilterBuilder $filterBuilder
- * @param UiComponentInterface[] $components
- * @param array $data
- */
- public function __construct(
- ContextInterface $context,
- FilterBuilder $filterBuilder,
- array $components = [],
- array $data = []
- ) {
- $this->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;
- }
- }
|