【发布时间】:2018-08-17 23:26:16
【问题描述】:
我有一个实体,它有一个使用 Gedmo Slug 库定义和管理的 slug 字段。
是否可以轻松地为该字段定义不需要的值列表(例如'edit'、'new'、'delete'...),还是我需要自己做一些事情?
【问题讨论】:
-
例如,使用 Doctrine 的事件,您可以检查方法“preInsert”中的禁止值。因此,'BaseEntity' 有一个带有
['new', 'edit', 'delete']的常量数组,每个子实体中的 'preInsert' 方法检查将生成的 slug 是否等于这些禁止值之一。 -
您是否尝试在您的字段中使用正则表达式验证器并将您的话列入黑名单? regex validator
-
使用 Doctrine 事件是一个坏主意和坏习惯,它们不是为了验证表单中的数据!验证不同,您可以使用 2 种不同的约束,一种用于 slug(gedmo),另一种用于将单词列入黑名单(regex)。
-
我的问题不在于来自表单的数据。例如,用户可以创建标题为 Edit 的博客文章。我只是不希望 Slug 自动为博客文章的
slug保存一个等于edit的字符串,而是例如保存edit_1。我想知道这个用例是否计划在 Slug 库中,似乎没有。当我有时间的时候,我会尝试那些被告知的建议。