В правилах модели у меня есть правило:Дубликат проверки в пользовательском правиле проверки
array('source_id, postcode, state, fname, lname, email, address, city, birthday, gender, ip, phone,validation', 'validateCustom', 'on'=>'spam,normal'),
Проблема заключается в том, что это правило выполняется 12 раз (количество атрибутов -1).
public function validateCustom()
{
//here all validations done
}
Как это предотвратить? Я хочу проверить все эти параметры 1 раз, а не x. Спасибо за любую помощь.
Правила выполняющееся один раз для каждого атрибута (он проверяет каждый атрибут отдельно). Это ожидаемое поведение. Если вы реализуете один из атрибутов с помощью getter вместо свойства, вы увидите, что геттер не вызывается 12 раз. – Jon
Если валидации связаны, вы должны прикрепить их только к одному атрибуту. Если они независимы, вы должны реорганизовать свою логику, чтобы каждый вызов проверки выполнял проверку только целевого атрибута без проверки других. – DCoder
На самом деле его независимый. Будет пытаться атаковать 1 атрибут. вот суть, если хотите более плохой код)) https://gist.github.com/ineersa/6062995 – ineersa