Yii框架;如何检查模型属性是否具有SPECIFIC验证器?

时间:2011-07-21 18:44:39

标签: forms validation yii

我正在制作一个自定义的ActiveForm方法,但是它要求模型有一个特定的自定义验证器附加正在传递的属性(否则谁知道会发生什么!?)

我的问题很简单......有没有办法在可靠的代码中运行此检查?

我不想在运行时添加验证器。这会造成混乱,并可能让某人使用这种不应该使用的领域。

所以我想说一下:

if( model NOT HAVE validationMethod ON property)
  throw Exception;

1 个答案:

答案 0 :(得分:1)

我也不确定你为什么要这样做,但除了查看规则数组外,你可以这样做:

$model->getValidators($attribute)

检查哪些验证器对于特定属性是活动的(或者所有属性,如果arg为null。(我假设在您的示例中为$ attribute = property。)

这将返回当前方案中所有活动的验证程序对象,您可以检查是否存在预定义或自定义类。它还为您提供了一些信息,而不仅仅是规则数组(即验证器类的属性)。