* element factory edded for doctrine forms
* some fields changed to optional
This commit is contained in:
@@ -24,6 +24,7 @@ class ConfigProvider
|
||||
{
|
||||
return [
|
||||
'dependencies' => $this->getDependencies(),
|
||||
'form_elements' => $this->getFormElements(),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -45,4 +46,19 @@ class ConfigProvider
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the form dependencies
|
||||
*/
|
||||
public function getFormElements() : array
|
||||
{
|
||||
return [
|
||||
'aliases' => [
|
||||
'doctrine.object_select' => Form\Element\ObjectSelect::class,
|
||||
],
|
||||
'factories' => [
|
||||
Form\Element\ObjectSelect::class => Form\Element\ElementFactory::class,
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
18
src/DoctrineExpressiveModule/Form/Element/ElementFactory.php
Normal file
18
src/DoctrineExpressiveModule/Form/Element/ElementFactory.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace DoctrineExpressiveModule\Form\Element;
|
||||
|
||||
use Interop\Container\ContainerInterface;
|
||||
|
||||
class ElementFactory
|
||||
{
|
||||
|
||||
public function __invoke(ContainerInterface $container, string $elementClass)
|
||||
{
|
||||
$em = $container->get('doctrine.entity_manager.orm_default');
|
||||
/** @var ObjectSelect|ObjectRadio|ObjectMultiCheckbox $element */
|
||||
$element = new $elementClass();
|
||||
$element->setOption('object_manager', $em);
|
||||
return $element;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user