我需要覆盖&在控制器调用的模型中添加方法。我不想在Model类文件中写任何东西,因为它也被其他控制器使用。方法类似于pagination()
和find()
,我可以在控制器内部进行吗?
答案 0 :(得分:2)
CakePHP行为是mixins。他们将方法添加到模型中,这正是您所寻找的。 p>
听起来,动态地将行为附加到模型可以获得所需的结果。
查看Model::__construct()
,我可以看到它调用了$this->Behaviors->init($this->alias, $this->actsAs);
。
在实例化模型以附加不同的行为(即$this->MyModel->Behaviors->init('MyModel', array('MyBehavior'));
)之后,您可以再次调用它。
事实上,仔细观察可以发现$this->MyModel->Behaviors
是BehaviorCollection
的一个实例。因此,您可以使用attach()方法。