【问题标题】:Symfony Embedded Relation Many2Many - linking unique fields or creating new fieldsSymfony Embedded Relation Many2Many - 链接唯一字段或创建新字段
【发布时间】:2011-02-23 14:32:13
【问题描述】:

我正在使用嵌入式关系来允许用户编辑/将书籍添加到图书馆,并以相同的形式添加/删除在自动生成的管理员中编写书籍的 n 个作者。

这是我的问题:作者姓名是唯一的,所以当我输入已经存在的作者时,sfValidatorDoctrineUnique 会产生错误。

已存在具有相同“名称”的对象。

我想要做的是捕获这个错误并告诉表单不要尝试重新添加现有作者。

我是为此使用事件系统,还是修改验证器,或者我该怎么做?

非常感谢 连帽衫

PS: 经过一番搜索,我发现了一些可能是解决方案但我还没有让它工作的东西 http://symfonyguide.wordpress.com/2009/09/28/symfony-forms-saving-process/

【问题讨论】:

  • 对于未来的读者 - 我不认为上面提到的这个错误消息,OP提到,实际上是关于重复数据,但实际上是关于重复表的错误消息,它是由 Doctrine 生成的进行数据库结构检查,例如:php bin/console doctrine:schema:update --dump-sql。在处理多对多关系时,我也得到了它,在实际的多对多设置中(而不是通过多个一对多)

标签: symfony1 doctrine many-to-many symfony-forms


【解决方案1】:

我认为如果新作者已经存在,你不应该添加它。

sfDoctrineActAsTaggablePlugin 做同样的事情。它搜索现有标签并将它们与当前(由用户从表单添加)标签合并。

但这里有一个问题:两位作者 - 亚历山大·普希金和亚历山大·普希金,对我们来说是同一个作者,但对机器来说却不同。

【讨论】:

  • 我的问题可能措辞错误。我不想添加另一个名字的新作者。我希望系统能够识别出管理员添加到书中的作者已经存在,而不是尝试重新创建它,而只是将其链接到新书。
猜你喜欢
  • 2015-05-26
  • 1970-01-01
  • 2018-04-24
  • 1970-01-01
  • 1970-01-01
  • 2018-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多