我正在使用VichUploader在symfony项目中上传文件。在我使用的配置中(从文档中复制):
service: vich_uploader.namer_property
options: { property: 'slug'}
在我的实体中,我会使用Gedmo/Sluggable自动生成子弹:
/**
* @Gedmo\Slug(fields={"title"}, updatable=false)
* @ORM\Column(type="string", length=100, nullable=false)
*/
protected $slug;
但是,当尝试保存实体时,出现以下错误500:
如果我将属性设置为“标题”,则可以使用。我是否忘记了配置参数或其他使它与Gedmo slug配合使用的参数?
最佳答案
目前,我遇到了相同的问题,作为一种解决方法,我在实体类中稍稍更改了子弹头 setter/getter :
use Gedmo\Sluggable\Util\Urlizer;
class Event
{
// ...
/**
* @var string
*
* @Gedmo\Slug(fields={"name"})
* @ORM\Column(name="slug", type="string", length=128, unique=true)
*/
private $slug;
// ...
public function getSlug()
{
if (!$this->slug) {
return Urlizer::urlize($this->getName());
}
return $this->slug;
}
}
做到了。
不幸的是,有两个缺点:
urlizer
将无法在文件名中添加增量,则先前保存的文件可能会被覆盖!作为一种解决方法,您可以将unique=true
添加到缓慢的属性中。 关于php - Symfony VichUploader捆绑包: File name could not be generated,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35749923/