如何为Symfony验证器设置全局字符集?

时间:2015-03-04 12:04:06

标签: php symfony character-encoding

我在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。我/我怎么做?

1 个答案:

答案 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)

但我说实话,我不确定这是否是最好的方式。