繁体   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