0

我在 Ubuntu 9.10 上使用带有 Propel ORM 的 Symfony 1.3.2。

我正在写一个注册表单,它要求用户提供一个用户名。

我想对名称的选择施加以下限制:

  1. 该名称是唯一的(即尚未被其他人使用
  2. 该名称不在攻击性名称列表中,存储在数据库表中

对于第一个要求,可以使用 sfValidatorPropelUnique 验证器轻松完成。

然而,挑战在于实现第二个要求并将要求 1 和 2 组合到单个验证器中。

我想我可以编写一个自定义验证器来执行此操作,但我想知道是否有更好的方法来执行此操作(即使用框架,而不是“滚动我自己的”解决方案?

4

2 回答 2

0

想不出一个现成的 symfony 验证器解决方案来做到这一点,无论如何,您都需要单独编写数据库调用。

我会选择“推出自己的解决方案”,但也许更有经验的人有更好的主意。

这个文档中有一些关于 Propel 自动完成的内容,如果你想进一步探索,它可能会给你一些想法:

http://www.symfony-project.org/cookbook/1_2/en/make-a-choice

... 由 sfFromExtraPlugin 提供,但我什至不确定这是否与 1.3 兼容。

于 2010-02-26T02:56:00.593 回答
0

您必须使用 sfValidatorPropelUnique 和后验证器,请参见此处

于 2011-03-02T11:32:55.517 回答