Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony原则-防止slug为空_Symfony_Doctrine_Slug - Fatal编程技术网

Symfony原则-防止slug为空

Symfony原则-防止slug为空,symfony,doctrine,slug,Symfony,Doctrine,Slug,我有一个文章表,其中唯一可以包含文本的字段是content 我想从中得到一颗子弹 /** *@ORM\Column(type=“string”,length=64,unique=true) *@Gedmo\Slug(字段={“内容”}) */ 私人$slug; 我错误地发现,如果我尝试使用一些表情符号,它的slug将变为null 我试图在setter方法中检查slug是否为null,但没有成功 public function setSlug(字符串$slug):self { 如果($slug)

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

我想从中得到一颗子弹

/**
*@ORM\Column(type=“string”,length=64,unique=true)
*@Gedmo\Slug(字段={“内容”})
*/
私人$slug;

我错误地发现,如果我尝试使用一些表情符号,它的slug将变为null

我试图在setter方法中检查slug是否为null,但没有成功

public function setSlug(字符串$slug):self
{
如果($slug)
{
$this->slug=$slug;
}
否则{
$r=substr(md5(rand()),0,7);
$this->slug=$r;
}
退还$this;
}
MySQL 5.7、PHP 7.2、symfony 4.2、字符集utf8mb4\u unicode\u ci

有什么想法吗?
我的symfony技能是。。。begginer级别:)

在实体中使用
@Assert
仅允许字母数字值,并检查其是否为空:

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

请参阅此处的文档:

我正在查看GitHub页面上关于slug的内容,在示例中,他们没有使用setSlug。我错误地发现,如果我尝试使用某个表情符号,其slug将变为null,这就是为什么我试图检查是否为null…你不明白。。。Sluggable中的bug无法解析表情符号,因此slug变为null,所以我需要一个解决方法