Symfony主义-防止弹为空

时间:2019-05-23 10:33:05

标签: symfony doctrine slug

我有一个Article表,其中唯一可以包含文本的字段是content

从那开始,我试图a一

    /**
     * @ORM\Column(type="string", length=64, unique=true)
     * @Gedmo\Slug(fields={"content"})
     */
    private $slug;

由于错误,我发现如果我尝试使用某些表情符号的弹头会变成空

我试图检查setter方法中的子段是否为空,但没有成功

public function setSlug(string $slug): self
    {
        if ($slug)
        {
            $this->slug = $slug;
        }
        else {
            $r = substr(md5(rand()), 0, 7);
            $this->slug = $r;
        }

        return $this;
    }

MySQL 5.7,PHP 7.2,symfony 4.2,字符集utf8mb4_unicode_ci

有什么想法吗? 我的symfony技能是...初学者的水平:)

1 个答案:

答案 0 :(得分:0)

在您的实体中使用@Assert仅允许使用alphaNumeric值,并检查其是否为空白:

/**
 * @Assert\NotBlank
 * @Assert\Type(type="alnum")
 * @ORM\Column(type="string", length=64, unique=true)
 * @Gedmo\Slug(fields={"content"})
 */
private $slug;

在此处查看文档:{​​{3}}