Cakephp - 从控制器覆盖模型方法

时间:2011-10-11 06:30:31

标签: cakephp

我需要覆盖&在控制器调用的模型中添加方法。我不想在Model类文件中写任何东西,因为它也被其他控制器使用。方法类似于pagination()find(),我可以在控制器内部进行吗?

1 个答案:

答案 0 :(得分:2)

CakePHP行为是mixins。他们将方法添加到模型中,这正是您所寻找的。

听起来,动态地将行为附加到模型可以获得所需的结果。

查看Model::__construct(),我可以看到它调用了$this->Behaviors->init($this->alias, $this->actsAs);

在实例化模型以附加不同的行为(即$this->MyModel->Behaviors->init('MyModel', array('MyBehavior'));)之后,您可以再次调用它。


事实上,仔细观察可以发现$this->MyModel->BehaviorsBehaviorCollection的一个实例。因此,您可以使用attach()方法。