[英]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
处理的。 当我做类似的事情时,我从重载ChoiceType
和EntityType
。 然后在重载的实体中设置getParent()
来挖掘重载的选择。
最终,在我的情况下,我修改了新的choice
并在其中放置了嵌入的表单。 做到这一点很棘手。 并且它消耗大量时间。
但是使用这种方法,我对验证没有任何问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.