В дочернем конструкторе вы, вероятно, можете перезаписать или добавить элементы массива в $this->_rules
, так как он уже будет существовать, как только вы создадите экземпляр Model_UserAdmin
.
В частности, в Model_UserAdmin
не определяйте protected $rules
, поэтому он получает его от своего родителя, а затем в конструкторе:
$this->_rules['password']['max_length'] = 42 ;
unset($this->_rules['password_confirm']) ;
Вы также можете добавить некоторые проверки работоспособности прямо перед тем, чтобы убедиться, что эти ключи существуют, на случай, если вы измените их в Model_User
и забудете.
Это не совсем элегантно, но должно работать. Я предполагаю, что вы можете создать вокруг него некоторые функции-оболочки (вероятно, в class ORM extends ORM_Core
, чтобы они были доступны при расширении ORM), которые изменяют правила более формальным способом.
edit Посмотрите, пожалуйста, ответ Biakaveron для подсказки, где разместить дочерние правила (_initialize()
вместо конструктора)