gpt4 book ai didi

symfony - 在 symfony2 表单中使用 isValid() 不验证子类型

转载 作者:行者123 更新时间:2023-12-01 01:16:13 24 4
gpt4 key购买 nike

我有一个关于表单子(monad)项验证的问题。
我有一个类型,它包含另一种类型的几种类型。
在这些子类型中,我需要一个字段,一个不需要的恶魔。
但即使两者都是空的,表单也被验证
这是我的课

  class PassengerList {

/**
* @Assert\Valid() //If it's an array of objet, should validate all the object of the list *traverse
*/
protected $passengers;
/**
* @Assert\Valid
*/
protected $passengers_child;
/**
* @Assert\Valid
*/
protected $passengers_baby;
}

乘客名单类型
class PassengerListType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('passengers','collection', array(
'type' => new PassengerType(),
'allow_add' => false,
'required'=> true,
'allow_delete' => false));
$builder->add('passengers_child','collection', array(
'type' => new PassengerChildType(),
'allow_add' => true,
'allow_delete' => false));
$builder->add('passengers_baby','collection', array(
'type' => new PassengerBabyType(),
'allow_add' => true,
'allow_delete' => false));

}
function getName()
{
return 'passenger_list';
}

}

乘客类型
class PassengerType extends AbstractType
{

public function buildForm(FormBuilder $builder, array $options)
{
$date_params = array("widget"=>"single_text","input"=>"datetime",'format' => 'dd-MM-yyyy',);
$builder
->add('civility', 'choice', array("choices"=>Passenger::getCivilityList()))
->add('birthdate','date',$date_params)
->add('last_name','text',array('required'=>true))
->add('first_name','text',array('required'=>false))
->add('type','hidden');
}
function getName()
{
return 'passenger';
}
public function getDefaultOptions(array $options)
{
return array(
'data_class' => 'Travelyo\CoreBundle\Entity\Passenger',
);
}
}

这给了我这个表格:

enter image description here

但是当使用 $form->isValid() 验证表单时,尽管我将两个字段都留空,但返回的值是 true。

我觉得问题是在子类型中没有任何东西得到验证。

你有任何可以帮助我的利兹吗?

最佳答案

你用的是2.1吗?

您需要指定 validation groups , 或启用 cascade_validation , 类似于 this question .

关于symfony - 在 symfony2 表单中使用 isValid() 不验证子类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11953327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com