Sonata Admin Bundle - 字符串验证

nic*_*cel 2 string validation bundle symfony sonata-admin

我的Sonata Admin Bundle中有一些表单,有些字段设置为"required = true".现在,您可以使用空字符串来规避此要求,例如使用空格.它甚至适用于整数类型..

如何构建验证,从一些不允许的条目中获取?

谢谢

小智 7

您可以添加自定义回调验证程序,以根据所需的所有情况验证字符串.

只需添加您的管理类:

/**
 * {@inheritdoc}
 */
public function validate(ErrorElement $errorElement, $object)
{
    $errorElement
        ->assertCallback(array('validateMyEntity'))
    ;
}
Run Code Online (Sandbox Code Playgroud)

在你的实体中:

use Symfony\Component\Validator\ExecutionContext;

/**
 * Validates my entity and throw violations
 */
public function validateMyEntity(ExecutionContext $context)
{
    $title = $this->getTitle();

    if (empty($title)) {
        $context->addViolation('Title can\'t be empty.');
    }
}
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.

  • 使用symfony 2.5+和sonata 2.2+使用**ExecutionContextInterface**而不是**ExecutionContext** (2认同)