/** * {@inheritdoc} */ public function buildView(FormView $view, FormInterface $form, array $options) { $data = $form->getData(); if ($data instanceof Item) { $view->vars['label'] = $this->resolver->getLabel($data->getType()); } return; }
public function postLoad(LifecycleEventArgs $args) { $entity = $args->getEntity(); if ($entity instanceof Item) { try { $repository = $this->resolver->getRepository($entity->getType()); $itemType = $repository->find($entity->getItemTypeId()); $entity->setItemType($itemType); } catch (NoTypeFoundException $e) { //@TODO: log something } } }
public function buildView(FormView $view, FormInterface $form, array $options) { $items = array(); if (count($options['items'])) { foreach ($options['items'] as $item) { $items[] = array('type' => $item['type'], 'label' => isset($item['label']) ? $item['label'] : $this->resolver->getLabel($item['type']), 'translationDomain' => isset($item['translationDomain']) ? $item['translationDomain'] : 'EnhavoGridBundle'); } } else { foreach ($this->resolver->getItems() as $name => $item) { $items[] = array('type' => $name, 'label' => $this->resolver->getLabel($name), 'translationDomain' => isset($item['translationDomain']) ? $item['translationDomain'] : 'EnhavoGridBundle'); } } $view->vars['items'] = $items; }
public function buildView(FormView $view, FormInterface $form, array $options) { $items = array(); if (count($options['items'])) { foreach ($options['items'] as $item) { $definition = $this->resolver->getDefinition($item); $items[] = array('type' => $definition->getName(), 'label' => $definition->getLabel(), 'translationDomain' => $definition->getTranslationDomain()); } } else { foreach ($this->resolver->getItems() as $item) { $items[] = array('type' => $item->getName(), 'label' => $item->getLabel(), 'translationDomain' => $item->getTranslationDomain()); } } $view->vars['items'] = $items; }
/** * Extend item type if model class differs from parent class * * @param LoadClassMetadataEventArgs $eventArgs */ public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs) { /** @var ClassMetadata $metadata */ $metadata = $eventArgs->getClassMetadata(); try { $type = $this->resolver->getTypeByParent($metadata->getName()); $definition = $this->resolver->getDefinition($type); if ($definition->getParent() !== null && $definition->getModel() !== $definition->getParent()) { $metadata->setInheritanceType(ClassMetadata::INHERITANCE_TYPE_SINGLE_TABLE); $metadata->setDiscriminatorColumn(['name' => 'discr', 'type' => 'string', 'length' => 6]); $metadata->addDiscriminatorMapClass('target', $definition->getParent()); $metadata->addDiscriminatorMapClass('extend', $definition->getModel()); } } catch (NoTypeFoundException $e) { // no match type, so nothing to do here } }