gpt4 book ai didi

forms - Symfony2 - 为什么隐藏字段中的整数值不被识别为整数?

转载 作者:行者123 更新时间:2023-12-04 23:06:37 26 4
gpt4 key购买 nike

我的 Symfony2 项目中有一个“ Rating ”实体的自定义表单类型。它有一个 值(value) 字段,即整数。然后,我为这个实体创建了表单。下面是代码:

class RatingType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options){
$builder->add('value', 'hidden', array('data' => 113));
}

public function getDefaultOptions(array $options){
return array(
'data_class' => 'Acme\ArticleBundle\Entity\Rating',
);
}

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

当我按下 提交 在我的 html 页面中的按钮,表单未经过验证,屏幕上显示“ 不是整数 ”错误消息!
为什么 Symfony2 不转换值 113 为整数?
我能做些什么来解决这个问题?

最佳答案

当使用类型 hidden而不是 integer在您的 FormType 中,symfony 不知道该字段会发生什么,因此它假定一个字符串。将表单绑定(bind)到实体时,隐藏字段作为字符串存储到实体字段中。

如果您使用 type="integer" 进行验证,则验证实体会失败,因为该值不是整数,而是可以转换为整数的字符串(保存它会起作用,因为教义看起来是否可以转换为给定类型)。

诀窍是使用 type="numeric "在您的实体验证注释中。 这将检查字段是否可以转换为整数,而不是当前值是否为实整数。

关于forms - Symfony2 - 为什么隐藏字段中的整数值不被识别为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10776746/

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