FormType 从实体关系中添加字段

在我的 Symfony 4 项目中,我有一个ParametersAdmin实体,它包含与Entreprise实体的OneToOne关系。


    /**

     * @ORM\OneToOne(targetEntity="App\Entity\Entreprise", mappedBy="parametresAdmin", cascade={"persist", "remove"})

     */

    private $entreprise;

Entreprise实体有一个nom字段


在我基于ParametresAdmin实体的表单中,我想包含entreprise.nom属性。


所以,我试过这个:


->add('entreprise', EntityType::class, [

                'label' => "Nom de l'entreprise",

                "class" => Entreprise::class,

                "choice_label" => "nom",

                "required" => false,

            ])

我现在有了nom值,但它就像ChoiceType而不是TextType

http://img1.mukewang.com/644b6047000195b206540083.jpg

潇湘沐
浏览 88回答 1
1回答

白板的微信

编辑您正在编辑的实体的子实体的值相当容易。您必须将表单的类型更改为 TextType,正如您可能已经假设的那样,并提供有关数据在“父”实体上的位置的表单信息,这可以通过以下选项完成property_path:->add('entreprise_nom', TextType::class, [      'label' => "Nom de l'entreprise",      'property_path' => 'entreprise.nom', // <--- this      'required' => false,])entreprise.nom本质上告诉表单组件它应该首先访问entreprise您的实体上的属性,然后在该值上它应该访问该nom属性(您可以在属性访问)。如果提交了表单并且刷新了实体管理器,它还将更改(!)nom上的属性。entreprise
打开App,查看更多内容
随时随地看视频慕课网APP