我正在使用Symfony 2.7.0-BETA1的LexikFormFilterBundle(当前开发版)。它按预期工作,但......
所有filter_entity
个字段都会抛出表单错误。记录in the basic example,必须设置
' validation_groups' =>数组('过滤')//避免与NotBlank()约束相关的消息
但就我而言,ManyToOne实体不使用NotBlank()
- 断言。尽管如此,表单会抛出关于不存在的实体''
的错误。当我选择一个实体时,过滤器会正确过滤,不会显示任何错误消息。其他过滤字段类型在空白时也不会抛出错误。
以下是我的代码的精简表示:
<?php
// src/AppBundle/Entity/Serviceevent.php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Serviceevent
*
* @ORM\Table(name="serviceevents")
* @ORM\Entity(repositoryClass="AppBundle\Entity\ServiceeventRepository")
*/
class Serviceevent
{
/**
* @var \AppBundle\Entity\Park
*
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Park", inversedBy="serviceevents")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="park_id", referencedColumnName="id", nullable=false)
* })
*/
private $park;
}
<?php
// /src/AppBundle/Filter/ServiceeventFilterType.php
namespace AppBundle\Filter;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class ServiceeventFilterType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('park', 'filter_entity', array(
'class' => 'AppBundle:Park',
'property' => 'identifyingName',
'label' => 'Park',
'placeholder' => '',
'required' => false,
));
;
}
public function getName()
{
return 'serviceevent_filter';
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'csrf_protection' => false,
'validation_groups' => array('filtering'), // avoid NotBlank() constraint-related message
));
}
}
我希望,如果没有选择任何值,则不会在没有抛出错误的情况下对该字段进行过滤。
相反,我得到了像这样的所有实体字段的表单错误:
的Symfony \元器件\验证\ ConstraintViolation 对象(Symfony \ Component \ Form \ Form).children [park] =
引起:
的Symfony \元器件\表格\异常\ TransformationFailedException 无法反转属性路径的值&#34; [park]&#34;:选择&#34;&#34;不存在或不是唯一的
引起:
的Symfony \元器件\表格\异常\ TransformationFailedException 选择&#34;&#34;不存在或不是唯一的
问题是:如何摆脱这些错误?
答案 0 :(得分:0)
用户wcluijt在https://github.com/symfony/symfony/issues/14393#issuecomment-94996862修复了此问题。这证实,我的问题是由Symfony 2.7.0-BETA1中的Bug引起的。所以我可以将这个问题视为固定的。很抱歉浪费你的时间来处理与测试相关的错误。