我在php项目中多次使用Symfony-Length-Contraint。我的Symfony版本是2.5.10
不幸的是,我的字符集是ISO-8859-1,Symfony-Length-Constraint defaults to UTF-8。
好吧,我可以像这样更改每个@Assert \ Length:
* @Assert\Length(charset="ISO-8859-15")
可能需要进行验证工作。
但我想为我的项目全局设置这个charset,而不是为每个Length-Assertion设置charset。我/我怎么做?
答案 0 :(得分:1)
这是一个很好的问题 - 你当然可以将约束子类化为实现这个
假设2.6默认值:
<强>的src /的appbundle /验证/约束/ Length.php 强>
<?php
namespace AppBundle\Validator\Constraints;
use Symfony\Component\Validator\Constraints;
/**
* @Annotation
*
* @api
*/
class Length extends Constraints\Length
{
public $charset = 'ISO-8859-1';
}
然后,在您的实体文件中或任何地方
use Symfony\Component\Validator\Constraints as Assert;
use AppBundle\Validator\Constraints as CustomAssert;
(...)
* @CustomAssert\Length(min=123)
但我说实话,我不确定这是否是最好的方式。