gpt4 book ai didi

validation - 多个字段的 Symfony2 表单验证只需要一个

转载 作者:行者123 更新时间:2023-12-04 02:05:06 24 4
gpt4 key购买 nike

我在一个表单中有 5 个字段,如下所示:

类 ItempriceFormType 扩展了抽象类型{

public function buildForm(FormBuilderInterface $builder, array $options) {

$builder->add('pergramprice', 'text', array('required' => false))
->add('eighthprice', 'text', array('required' => false))
->add('quarterprice', 'text', array('required' => false))
->add('halfprice', 'text', array('required' => false))
->add('ounceprice', 'text', array('required' => false))
;
}

public function setDefaultOptions(OptionsResolverInterface $resolver) {
$resolver->setDefaults(array(
'data_class' => 'Acme\FrontBundle\Entity\Itemprice',
));
}

public function getName() {
return 'items_price';
}

我只想验证一个字段意味着只需要 5 个字段中的一个字段。那么我如何通过 symfony 2 验证来实现这一点。

提前致谢。

最佳答案

您可以使用自定义验证器进行基于多个字段的验证,在您的 Itemprice 实体中定义 @Assert\Callback注释并检查所有价格字段是否为空然后显示错误

use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\ExecutionContextInterface;
/**
* @Assert\Callback(methods={"checkPriceValidation"})
*/
class Itemprice
{
public function checkPriceValidation(ExecutionContextInterface $context)
{
$pergramprice = $this->getPergramprice();
$eighthprice = $this->getEighthprice();
$quarterprice = $this->getQuarterprice();
$halfprice = $this->getHalfprice();
$ounceprice = $this->getOunceprice();
if(
empty($pergramprice)
&& empty($eighthprice)
&& empty($quarterprice)
&& empty($halfprice)
&& empty($ounceprice)
){
$context->addViolationAt('pergramprice', 'Please enter atleast one price');
}
}
}

关于validation - 多个字段的 Symfony2 表单验证只需要一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31808317/

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