Class 用于sluggable Entity的symfony2类验证程序
对于具有字段slug的实体,我有一个类约束。我想在自定义类约束中对slug进行一些检查,但在约束中,Class 用于sluggable Entity的symfony2类验证程序,class,symfony,constraints,Class,Symfony,Constraints,对于具有字段slug的实体,我有一个类约束。我想在自定义类约束中对slug进行一些检查,但在约束中,getSlug()的值为空 // my custom class validator public function isValid( $page, Constraint $constraint ) { $slug = $page->getSlug(); =>$slug为空 这是我的实体 class page { /** * @ORM\Column(name="n
getSlug()
的值为空
// my custom class validator
public function isValid( $page, Constraint $constraint ) {
$slug = $page->getSlug();
=>$slug
为空
这是我的实体
class page
{
/**
* @ORM\Column(name="name", type="string", length=150)
* @Assert\NotBlank()
*/
private $name;
/**
* @Gedmo\Slug(fields={"name"})
* @ORM\Column(name="slug", type="string", length=255)
*/
private $slug;
这是我的控制器:
public function createAction()
{
$entity = new Page();
$request = $this->getRequest();
$form = $this->createForm( new PageType(), $entity );
$form->bindRequest( $request );
在$form->bindRequest($request)
中调用自定义类验证器。我认为,slug并没有设置,因为条令会将其设置为预持久事件。但稍后将在$em->persist($entity)
处调用此事件
在我的类约束中,有没有一种方法可以到达页面的slug部分?不,你不能
正如您所说,slug是在prePersist
事件中生成的
您确定必须验证slug吗?如果是这样,请删除
@Gedmo\Slug
注释并自己创建它。。。但我不确定这是否真的是个好主意。也许我不需要为slug提供验证器。我需要的是一个独特的组合,如中所述的用户\u slug/页面\u slug