Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 扩展EntityType-构造函数参数未传递_Php_Doctrine Orm_Symfony - Fatal编程技术网

Php 扩展EntityType-构造函数参数未传递

Php 扩展EntityType-构造函数参数未传递,php,doctrine-orm,symfony,Php,Doctrine Orm,Symfony,我用下面的类扩展了Symfony\Bridge\doctor\Form\Type\EntityType namespace Main\Form\Type; use /* ... */ class ExtendedEntityType extends EntityType { /** * @param FormBuilderInterface $builder * @param array $options */ public function buildForm(FormBu

我用下面的类扩展了Symfony\Bridge\doctor\Form\Type\EntityType

namespace Main\Form\Type;

use /* ... */    

class ExtendedEntityType extends EntityType
{

/**
 * @param FormBuilderInterface $builder
 * @param array $options
 */
public function buildForm(FormBuilderInterface $builder, array $options)
{
 /* ... */
}

/**
 * @param OptionsResolver $resolver
 */
public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults( [
            'invalid_message' => 'The selected entity does not exist',
        ]
    );
}

/**
 * @return string
 */
public function getParent()
{
    return EntityType::class;
}
然后我还将其注册为服务

<services>
    <service id="main.type.Extended_entity" class="Main\Form\Type\ExtendedEntityType">
        <tag name="form.type_extension" extended-type="Symfony\Component\Form\Extension\Core\Type\EntityType"/>
        <argument type="service" id="doctrine"/>
    </service>
</services>
显然,由于某些原因,参数并没有传递到DoctrineType的构造函数中

我还试图覆盖构造函数并注入EntityManager,但我得到了相同的错误-没有参数传递到构造函数中。 我需要做些额外的事情才能让它工作吗


使用Symfony3。

您在这里混合了两个概念

您正在扩展
EntityType
,这意味着您是,但您不是服务映射所建议的那样

这是两个独立的概念

您应该将服务映射标记从
form\u extension
更改为
form\u type

<services>
    <service id="main.type.Extended_entity" class="Main\Form\Type\ExtendedEntityType">
        <tag name="form.type" />
        <argument type="service" id="doctrine"/>
    </service>
</services>

<services>
    <service id="main.type.Extended_entity" class="Main\Form\Type\ExtendedEntityType">
        <tag name="form.type" />
        <argument type="service" id="doctrine"/>
    </service>
</services>