繁体   English   中英

SonataAdmin表单EntityType不需要

[英]SonataAdmin form EntityType not required

我的实体与其他实体具有可选关系( nullable=true )。

但是当我使用required = false ,由Sonata创建的表单只有一个<select>其中包含所有我的实体,而不是空白值。

使用经典的symfony形式, required = false允许不选择任何实体

/**
 * @param FormMapper $formMapper
 */
protected function configureFormFields(FormMapper $formMapper)
{

    $formMapper
        ->add('otherEntity', EntityType::class, [
            'class'    => OtherEntity::class,
            'required' => false,
        ])
    ;
}

你知道为什么吗?

首先,检查您的实体是否允许您的关系中包含空值。 在实体中,例如(请注意JoinColumn):

/**
 * @var OtherEntity
 *
 * @ORM\ManyToOne(targetEntity="AppBundle\Entity\OtherEntity")
 * @ORM\JoinColumn(nullable=true)
 */
private $otherEntity;

第二个在表单映射中添加占位符选项:

/**
 * @param FormMapper $formMapper
 */
protected function configureFormFields(FormMapper $formMapper)
{

    $formMapper
        ->add('otherEntity', EntityType::class, [
            'class'    => OtherEntity::class,
            'required' => false,
            // This is what sonata requires
            'placeholder' => 'Please select entity' 
        ])
    ;
}

我刚刚发现奏鸣曲添加了一个小小的十字架以删除当前选择的关系

它是如此之小,以至于昨晚我没看到它。

在此处输入图片说明

无论如何,谢谢您的回答。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM