Cakephp - переопределение метода модели из контроллера - PullRequest
0 голосов
/ 11 октября 2011

Мне нужно переопределить и добавить методы в модель, вызываемую контроллером. Я не хочу ничего писать внутри файла класса Model, потому что он используется и другими контроллерами. Методы как pagination() и find(), я могу сделать это изнутри контроллера?

1 Ответ

2 голосов
/ 12 октября 2011

CakePHP ведет себя как mixins . Они добавляют методы в модель, что вы и ищете.

Звучит так, будто динамическое присоединение поведения к модели даст вам нужный вам результат.

Глядя на Model::__construct(), я вижу, что он вызывает $this->Behaviors->init($this->alias, $this->actsAs);.

Возможно, вам удастся вызвать его снова после создания экземпляра модели, чтобы присоединить различные варианты поведения (например, $this->MyModel->Behaviors->init('MyModel', array('MyBehavior'));).


На самом деле, более пристальный взгляд показывает, что $this->MyModel->Behaviors является экземпляром BehaviorCollection. Таким образом, вы можете использовать метод attach () .

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