Yii Framework;Как проверить, есть ли у атрибута модели УКАЗАТЕЛЬНЫЙ валидатор? - PullRequest
0 голосов
/ 21 июля 2011

Я делаю пользовательский метод ActiveForm, но он требует, чтобы в модели был установлен определенный пользовательский валидатор для атрибута, через который передается (в противном случае, кто знает, что произойдет!?)

Мой вопрос просто ... есть ли способ выполнить эту проверку в надежном коде?

Я не хочу добавлять валидатор во время выполнения. Это может привести к путанице и, возможно, позволить кому-то использовать поле такого типа там, где его не следует использовать.

Итак, я хочу сказать что-то вроде:

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

1 Ответ

1 голос
/ 23 июля 2011

Я также не уверен, почему вы хотите это сделать, но помимо просмотра массива правил вы можете сделать:

$model->getValidators($attribute)

, чтобы проверить, какие валидаторы активны дляопределенный атрибут (или все атрибуты, если аргумент равен нулю. (Я предполагаю, что $ attribute = property в вашем примере.)

Это вернет все объекты валидатора, которые активны для текущего сценария, и выМожно проверить, существует ли предопределенный или пользовательский класс. Он также дает вам немного больше информации, чем просто массив правил (т. е. свойства класса валидатора).

...