Jea*_*ean 4 forms hidden-field symfony
我在Symfony2项目中有一个" 评级 "实体的自定义表单类型.它有一个值字段,即整数.然后,我为这个实体创建了表单.以下是代码:
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';
}
}
Run Code Online (Sandbox Code Playgroud)
当我在我的html页面中按下提交按钮时,表单未经过验证,并且屏幕上显示" 非整数 "错误消息!
为什么Symfony2不会将值113转换为整数?我该怎么做才能解决这个问题?
当使用类型hidden
而不是integer
FormType时,symfony不知道该字段会发生什么,因此它假设一个字符串.将表单绑定到实体时,隐藏字段将作为字符串存储到实体字段中.
如果您使用type="integer"
,则验证实体失败,因为该值不是整数,而是可以转换为整数的字符串(保存它将起作用,因为doctrine看起来是否可以转换为给定类型).
诀窍是type="numeric
在你的实体验证注释中使用".这将检查字段是否可以转换为整数,而不是当前值是真实整数.
归档时间: |
|
查看次数: |
3653 次 |
最近记录: |