簡體   English   中英

自定義表單類型symfony

[英]Custom form type symfony

我需要在Symfony中設置一個自定義表單類型,該類型將選擇類型用作父類型,但實際上不需要預先加載選擇。 就像我希望能夠用ajax調用填充select,然后使用調用中的選項之一提交而不會得到This value is not valid. 錯誤,大概是因為它不是預加載的選項之一。

我不需要自定義數據轉換器,因為我通過捆綁控制器執行此操作,我只需要Symfony在提交最初不在列表中的選項時不要抱怨。 到目前為止,這是我的自定義表單類型:

<?php

namespace ISFP\Index\IndexBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class NullEntityType extends AbstractType
{
    public function getDefaultOptions(array $options)
    {
        $defaultOptions = array(
            'em'                => null,
            'class'             => null,
            'property'          => null,
        );

        $options = array_replace($defaultOptions, $options);

        return $options;
    }

    public function getParent()
    {
        return 'choice';
    }

    public function getName()
    {
        return 'null_entity';
    }
}

杜德看着EntityType時有一個父項choice 但是整個顯示都是由ChoiceType處理的。 當我做類似的事情時,我從重載ChoiceTypeEntityType 然后在重載的實體中設置getParent()來挖掘重載的選擇。

最終,在我的情況下,我修改了新的choice並在其中放置了嵌入的表單。 做到這一點很棘手。 並且它消耗大量時間。

但是使用這種方法,我對驗證沒有任何問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM