/** * @param $id * @return DirectoryView */ public function getById($id) : DirectoryView { if (!($name = $this->client->hget($this->key, $id))) { $model = $this->repository->getById($id); $this->client->hset($this->key, $model->getId(), $model->getName()); return $model; } /** @var DirectoryView $viewClass */ $viewClass = $this->viewClass; return $viewClass::create($id, $name); }
/** * Transforms aggregates to objects * * @param array $aggregations * @return array */ public function transformAggregations(array $aggregations = []) { if (!empty($aggregations['buckets'])) { $aggregations = array_column($aggregations['buckets'], 'doc_count', 'key'); } $data = []; $allIndexed = $this->repository->getAllIndexed(); foreach ($allIndexed as $id => $name) { $data[$id] = DirectoryView::create($id, $name, $aggregations[$id] ?? 0); } return $data; }
/** * @inheritDoc */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('query', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\TextType', ['label' => 'form.label.query', 'required' => false])->add('category', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\ChoiceType', ['label' => 'form.label.category', 'choices' => $this->repository->getAllIndexed(), 'placeholder' => 'form.placeholder.all', 'required' => false, 'choice_translation_domain' => false])->add('page', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\IntegerType', ['empty_data' => '1'])->add('submit', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\SubmitType', ['label' => 'action.search']); }
public function getCategoryById(GetCategoryByIdQuery $query) { $result = $this->repository->getById($query->getId()); $query->setResult($result); }
/** * @inheritDoc */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('name', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\TextType', ['label' => 'form.label.name'])->add('price', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\MoneyType', ['label' => 'form.label.price', 'currency' => $this->currency, 'divisor' => 100])->add('category', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\ChoiceType', ['label' => 'form.label.category', 'choices' => $this->repository->getAllIndexed()])->add('description', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\TextareaType', ['label' => 'form.label.description', 'required' => false, 'attr' => ['rows' => 5]])->add('available', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\CheckboxType', ['label' => 'form.label.available', 'required' => false])->add('imageUrl', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\TextType', ['label' => 'form.label.image'])->add('productOptions', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\CollectionType', ['label' => 'form.label.options', 'required' => false, 'entry_type' => 'Shop\\Presentation\\Form\\OptionType', 'entry_options' => ['required' => false], 'allow_add' => true, 'allow_delete' => true, 'prototype' => true])->add('submit', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\SubmitType', ['label' => 'action.submit']); }
/** * @inheritDoc */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('option', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\ChoiceType', ['choices' => $this->repository->getAllIndexed()])->add('value', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\TextType'); }