Расширить поведение класса Validate в CakePHP - PullRequest
0 голосов
/ 04 февраля 2012

Я работал над Cake App весь день, и мне пришлось скопировать две функции проверки почти на все мои модели, что выглядит ужасной тратой.

Я просмотрел как документацию по Cake, так и здесь без особой пользы, если я хочу расширить класс Validate, чтобы мне нужно было только кодировать эти проверяющие функции, как лучше всего это сделать, и где подходящий файл лучше всего подходит в структуре CakePHP?

Полагаю, мне нужно сделать что-то вроде:

class extraValidation extends Validate {

  public function alphaNumericSpecialValues($check) {

    //validation routines

  }

}

Любая помощь с благодарностью

1 Ответ

1 голос
/ 04 февраля 2012

Нелегко переопределить валидацию, поскольку ее метод является статическим и вызывается статическим способом (с использованием имени класса).

Тем не менее, вы можете достичь желаемого, поместив свои пользовательские функции проверки либо в AppModel (который является суперклассом ваших моделей), либо в поведении. Если вы помещаете их в поведение, не забудьте добавить &$Model в качестве первого аргумента каждой функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...