Symfony VichUploaderBundle:无法生成文件名

2024-01-02

我正在使用 VichUploader 在 symfony 项目中上传文件。在我使用的配置中(从文档复制):

service: vich_uploader.namer_property
options: { property: 'slug'}

在我的实体中,我使用 Gedmo/Sluggable 自动生成 slugs:

/**
 * @Gedmo\Slug(fields={"title"}, updatable=false)
 * @ORM\Column(type="string", length=100, nullable=false)
 */
protected $slug;

但是当尝试保存实体时,我收到以下错误 500:

无法生成文件名:属性段为空。

如果我将属性设置为“标题”,它就可以工作。我是否忘记了配置参数或其他让它与 Gedmo slug 一起工作的东西?


我现在遇到了同样的问题,作为解决方法,我稍微更改了实体类中的 slug 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;
    }
}

这就成功了。

不幸的是,有几个缺点:

  1. 如果您想要更新注释中的 sluggable 行为以包含其他属性,则还必须更新 getter。
  2. 此方法缺乏对数据库的检查:数据库中是否已存在同名记录urlizer在 getter 中将无法向文件名添加增量,以前保存的文件可能会被覆盖!作为解决方法,您可以添加unique=true到可打块的属性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Symfony VichUploaderBundle:无法生成文件名 的相关文章

随机推荐

  • SVG 渐变不起作用

    我有一个 svg 我需要用渐变填充它 css 是由脚本添加的 如果你使用单一 RGB 颜色 一切都可以正常工作 但使用渐变时 SVG 会产生白色背景 脚本后的结果代码
  • RibbonComboBox 选定的图库项目在鼠标离开时恢复为旧值

    我已将 WPF 功能区替换为最新的库 组合框选择更改会触发数据网格的重新加载 我的 RibbonComboBox 有问题 如果我将鼠标光标移出所选项目 则所选项目将恢复为旧项目 如果我将光标保持在所选项目上直到数据网格重新加载完成 则新值将
  • scala 中什么时候必须使用分号?

    我正在学习如何在 Scala 中编程 并被告知分号在 Scala 中是可选的 因此 考虑到这一点 我尝试使用以下没有分号的嵌套代码块 但是 它会在 Scala REPL 中引发错误 scala gt val a 1 val b a 2 va
  • 在Java中查找字符串中子字符串的第二次出现

    我们得到一个字符串 比如说 itiswhatitis 和一个子串 比如说 is 我需要找到的索引 i 当字符串 is 在原始字符串中第二次出现 String indexOf is 在这种情况下将返回 2 在这种情况下我希望输出为 10 使用
  • 在VB中替换单个字符串中的多个字符

    是否可以在 Visual Basic 中替换字符串中的多个字符 例如 mary had a little lamb 全信a必须改为z all m必须改为y all t必须改为x只需一行代码 结果是Replace是一个字符串 可以连接多个替换
  • 玩2.5,休眠:表未映射

    我在下面遇到了异常 例外是 org hibernate hql internal ast QuerySyntaxException 用户未映射 调用此代码时发生了这种情况 TypedQuery
  • 变量检查,有些不对劲

    我花了一些时间在互联网上搜索此代码的部分来解决它 但是一旦进入我的代码 它似乎不起作用 程序执行到这一步后 无论我输入什么 它都不会显示密码强度 而是显示一个空格 if EnteredPassword isupper or EnteredP
  • 将 nil 赋给 TImage.Picture.Graphic 来清除图片后,如何再次使用它?

    在下面的代码中 我清除了btnSaveClick中的图片 稍后在btnLoadClick中我想将图片分配给图像 但它给出了AV 因为Graphic对象不存在 我怎样才能完成任务 procedure TForm1 btnSaveClick S
  • GCC 4.4:避免在 gcc 中对 switch/case 语句进行范围检查?

    这只是 4 4 之前的 GCC 版本的问题 在 GCC 4 5 中已修复 https gcc gnu org bugzilla show bug cgi id 43462 是否可以告诉编译器 switch 中使用的变量适合提供的 case
  • 如何使用 Material Components Web Foundations

    使用材质组件 我试图弄清楚如何使用组件基础的方法 举个例子 我有 div class mdc linear progress div class mdc linear progress buffering dots div div clas
  • Java - 具有显示箭头的按钮

    我想要一个 Java 中的按钮 它显示箭头 就像键盘上一样 到目前为止我有这个 JButton arrowUp new JButton JButton arrowDown new JButton v JButton arrowLeft ne
  • 如何使用 pandas 查找列的最大值并根据条件按顺序排列它们?

    我有以下数据框 import pandas as pd import numpy as np d ID 1 2 3 4 5 6 Price1 5 9 4 3 9 np nan Price2 9 10 13 14 18 np nan Pric
  • PHP 和 MySQLi - 无法通过[重复]中的引用传递参数 2

    这个问题在这里已经有答案了 我正在尝试创建一个函数来检查更新并插入一些数据 但我在第一步中遇到了问题 其中 stmt gt bind param 表示没有通过引用传递参数或类似的内容 我在下面附上了功能代码 public function
  • 如何使用 grails 中现有的 java 类

    如何从 Grails 应用程序调用驻留在现有 Java 类中的方法 是否有必要 建议将其包装在服务中 将您的源代码放入 src java 中 然后在conf spring resources groovy中 你可以这样做 例如 Place
  • 修剪 Struts2 文本字段字符串输入

    修剪该字符串的最佳方法是什么 放置修剪代码的最佳位置在哪里 假设我的 jsp 中有以下文本字段
  • AppEngine SDK 1.8.5 和 Eclipse Juno 不工作

    我已经在 3 台不同的机器上安装了 GWT 和 Appengine 的 Eclipse 插件 所有机器都使用 Juno 4 2 在每种情况下 我都会收到以下错误 所选的 App Engine SDK 无效 无法在 路径 初始化 App En
  • 使用伪元素覆盖滚动的div

    我想用伪元素覆盖来覆盖动态滚动内容的 div 我遇到的问题是覆盖层随内容一起滚动 使折叠下方的任何内容都裸露 当下面的内容滚动时 如何允许覆盖层保持在原位 wantOverlay width 200px height 100px overf
  • 使用 secondary_y 轴绘制 groupby 数据

    我想绘制 12 个图表 每月一张图表 包括列 A and B 在左侧 y 轴和列上 C 在右侧 下面的代码将所有内容绘制在左侧 import pandas as pd index pd date range 2011 1 1 00 00 0
  • 如何为对象数组编写 JSON 模式?

    我的 JSON 字符串的格式如下 count 3 data a ax 1 b bx 2 c cx 4 The data数组包含很多a and b and c 并且没有其他种类的物体 If count 0 data应该是一个空数组 我在用着h
  • Symfony VichUploaderBundle:无法生成文件名

    我正在使用 VichUploader 在 symfony 项目中上传文件 在我使用的配置中 从文档复制 service vich uploader namer property options property slug 在我的实体中 我使