您好,我在表單中收集文本字段時遇到了問題。當其中一個字段中存在錯誤時,這些錯誤會冒泡爲父窗體,因此它們不會分配給字段,而是分配給父項本身。這是下面一段代碼中的'points'集合。我試圖將error_bubbling設置爲false,但它沒有效果。表單集合錯誤冒泡
<?php
namespace JamaLvova\AdminBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use JamaLvova\AdminBundle\Form\Type\ExercisePointsFormType;
class StartContestFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('startYear', 'hidden')
/*
some other form elements
*/
->add('points', 'collection', array(
'type' => 'text',
'allow_add' => true,
'label' => 'Body za jednotlivé úlohy:',
'error_bubbling' => false,
'options' => array(
'error_bubbling' => false,
'attr' => array("maxlength" => "4", "size" => "4")
)
));
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'JamaLvova\AdminBundle\Form\StartContestForm',
));
}
public function getName()
{
return 'startContestForm';
}
}
在StartContestForm我有$點屬性這樣寫的:
/**
* @Assert\Type(type="integer", message="Hodnota {{ value }} není celé číslo.")
* @Assert\Range(
* min = "0",
* max = "",
* minMessage = "Body nemohou být záporné",
* maxMessage = "Příliš mnoho bodů"
*)
*/
private $points;
在樹枝模板時,我遍歷form.points,沒有現場有錯誤,但form.points一樣。有沒有人有任何想法可以解決問題?或者我錯過了什麼?非常感謝:-)(Symfony v。2.1.4)
編輯:看來,如果我使用表單集合('type'=> new PointsFormType())而不是'type'=> '文本',它以某種方式按預期工作。這是否意味着我總是需要使用表單集合才能將錯誤分配給某個字段?