在 Sonata Admin 中声明唯一验证 [英] Assert unique validation in Sonata Admin

查看:27
本文介绍了在 Sonata Admin 中声明唯一验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在一个项目中使用 Symfony 2.1.我使用 SonataAdminBundle 进行管理.我想在我的管理类中为我的 slug 属性添加一个断言..我该怎么做?

I'm using Symfony 2.1 for a project. I use SonataAdminBundle for administration usage. i want to add an assert to my slug property in my admin class.. how can i do this?

在我的实体中,我已经设置了断言,但它似乎在这里不起作用:(

in my entity i had set the assertion but it seems that it doesn't work here :(

相关代码:实体:

/*
 * @ORM\Table(name="default_doctor_specialty")
 * @UniqueEntity("uniqueSlugName")
 * @ORM\Entity
 */
class Test {
 //..
    /**
 * @var string
 * @Gedmo\Slug(fields={"name"},unique=false)
 * 
 * @ORM\Column(name="unique_slug_name", type="string", length=255, nullable=false , unique=true)
 */
private $uniqueSlugName;
}

在管理类:

class TestAdmin extends Admin {

protected $formOptions = array(
    'validation_groups' => 'Default'
);
 //...
  }

为什么默认验证不起作用???

why the default validation doesn't work???

&即使不能这样工作,我如何在管理类中设置唯一验证???

& even if doesn't work like this how can i set the unique validation inside admin class ???

感谢您的回答:)

推荐答案

最后我为我的实体定义了一个验证组:

finally i defined a validation group for my entity:

use Symfony\Bridge\Doctrine\Validator\Constraints as DoctrineAssert;
/*
 * @ORM\Table(name="default_doctor_specialty")
* @DoctrineAssert\UniqueEntity(fields="uniqueSlugName", message="A Speciality with same slug already exists", groups={"test"})
* @ORM\Entity
*/
class Test {
//..
/**
* @var string
* @Gedmo\Slug(fields={"name"},unique=false)
* 
* @ORM\Column(name="unique_slug_name", type="string", length=255, nullable=false , unique=true)
*/
private $uniqueSlugName;
}

<小时>

在管理类中,我使用了测试验证组而不是默认组!


and in admin class i used test validation group instead of default!

感谢 github 上的 AHWEBDEV

thanks to AHWEBDEV on github!

这篇关于在 Sonata Admin 中声明唯一验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆