我有一个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技能是...初学者的水平:)
答案 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}}