Я ищу способ расширить Symfony 2 EntityTypeПродлить Doctrine2 формы EntityType
Symfony\Bridge\Doctrine\Form\Type\EntityType
как в новом типе расширения этот, не создавая FormTypeExtension
- и я не могу понять это. Кто-нибудь знает какой-либо правильный способ сделать это?
Я пытался просто расширяя его таким образом:
class NestedEntityType extends EntityType {
public function getName() {
return $this->getBlockPrefix();
}
public function getBlockPrefix() {
return 'nested_entity';
}
}
, а затем в сонатной классе админ у меня есть:
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper->add('types', NestedEntityType::class, [
'label' => false,
'multiple' => true,
'expanded' => true,
'by_reference' => false
]);
}
, но, к сожалению, это приводит к фатальной ошибке:
Catchable Fatal Error: Argument 1 passed to Symfony\Bridge\Doctrine\Form\Type\DoctrineType::__construct() must implement interface Doctrine\Common\Persistence\ManagerRegistry, none given, called in
Мне нужно сохранить всю функциональность EntityType
, за одним исключением - способом, которым он является подарил. Вот почему мне нужно расширить этот тип (я использую его в других полях, поэтому я не могу просто изменить шаблон для него!).
Я использую Symfony 2.8 (только для справки).
Ни в коем случае Sonata/Symfony не может сделать это автоматически, как это делается для EntityType? Ну, я думаю, что смогу жить с этим, если нет другого пути :) – user1970395
Я думаю, что это возможно. Это Symfony в конце концов. Но вам нужно глубоко вникать в код и сначала понять, как он работает с EntityType –
Вот что я предположил, ну, на данный момент я могу жить с опцией 'class'. Спасибо за Вашу поддержку! – user1970395