Symfony2 + Sonata自定义验证约束CSS

时间:2014-12-15 09:41:26

标签: css validation symfony sonata-admin

我正在使用Symfony2 2.5.2和Sonata Admin Bundle进行小型项目。

对于我用Sonata生成CRUD UI的其中一个实体,我需要一个我根据Symfony2食谱创建的自定义验证规则。

我的问题是:对于使用此自定义约束验证的字段,似乎未应用错误CSS。当我做addViolation(" message")时,"消息"被添加到显示的错误列表中,但是使用经典验证器验证的字段有一个应用于它们的错误CSS类,那些使用我的自定义约束验证的字段没有视觉样式。

有人能说出可能出错的地方吗?我还没有在这里找到类似的主题。就验证而言,对我来说似乎都很好。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以为自定义验证创建回调,定义错误消息并将其保存到" sonata_flash_error",这应该可以。

$formMapper
    ->with('form.group_general')
    ->add('parent', 'doctrine_phpcr_odm_tree', 
        array(
            'constraints' => array(new Assert\Callback(array(array($this, 'validateParent')))
        )
));

public function validateParent($event, ExecutionContextInterface $context){
    $user = $this->getCurrentUser();
    if (!$user->hasRole('ROLE_SONATA_ADMIN')){
        $errorMessage = 'You are not allowed to change this value';
        $context->buildViolation($errorMessage)
                ->addViolation();
        $this->addFlash('sonata_flash_error', $errorMessage);
    }
}