我有一些奇怪的Symfony2行为,我不明白。假设有一个实体产品:
class Product
{
/** Some doctrine things */
protected $id;
/** Some doctrine things */
private $title;
/**
* @ORM\Column(type="decimal", precision=10, scale=2)
* @Assert\NotBlank(message="This field cannot be empty.")
* @Assert\GreaterThan(value=0, message="Please enter an amount higher than 0.")
*/
private $price;
/** Getters and setters */
}
要使用此表单添加我正在使用表单ProductType的产品:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('title', 'text')
->add('price', 'money', array('currency' => false, 'invalid_message' => 'Please enter a valid value.'))
}
一切正常,除非我提交了一些无效的值:
我在本地WampServer上使用SF2 v2.6。
答案 0 :(得分:1)
您的实体中有$price
,表单类型中有costs
。
我想foo1
和foo
会转换为null。所以你可以在setter中捕获它或使用例如Regex断言。
答案 1 :(得分:0)
我刚刚遇到了与Symfony 2.6和Wampserver相同的问题。
我暂时通过禁用php.ini中的php_intl扩展来解决它。然后,Assert \ Type(type =" decimal")似乎已经过时,因为它会自动验证数字格式。因此,您只需设置一个" invalid_message"您的Formtype字段上的选项。
希望这有帮助。