symfony 在EasyAdmin中验证实体

7rtdyuoh  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(164)

如何验证我的实体?我想检查url属性是否唯一。因此我这样做:我的Post.php实体:

use Symfony\Component\Validator\Constraints as Assert;
....
    #[ORM\Column(length: 255)]
    #[Assert\Unique]
    private ?string $url = null;
....

这显然是不够的,因为我的实体在创建/更新时没有被验证。所以我尝试添加一个组,如:

....
#[Assert\GroupSequence(['post_validation'])]
class Post
....

并调用PostGroupController.php中的组:

public function configureCrud(Crud $crud): Crud
    {
        return $crud
            ->setEntityLabelInSingular($this->translator->trans('post.post'))
            ->setEntityLabelInPlural($this->translator->trans('post.posts'))
            ->setSearchFields(['title'])
            ->setFormOptions(['validation_groups' => 'post_validation']);
    }

但是这也不起作用。我说的不起作用是指保存/更新的记录不是唯一的url。那么这个EasyAdmin验证有什么问题吗?或者我做错了什么?P.S.我安装了symfony验证器。

toe95027

toe950271#

我没有使用assert,请试试这个:

#[ORM\Column(type: 'string', unique: true)]
private $url;

相关问题