Cakephp-从控制器重写模型方法

Cakephp-从控制器重写模型方法,cakephp,Cakephp,我需要在控制器调用的模型中重写和添加方法。我不想在模型类文件中写任何东西,因为它也被其他控制器使用。方法类似于pagination()和find(),我可以从控制器内部执行吗?CakePHP行为是。他们将方法添加到模型中,这正是您所寻找的 听起来,动态地将一个行为附加到模型会得到您需要的结果 查看模型::\uu construct(),我可以看到它调用$this->Behaviors->init($this->alias,$this->actsAs) 在模型被实例化以附加不同的行为(例如,$th

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

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

听起来,动态地将一个行为附加到模型会得到您需要的结果

查看
模型::\uu construct()
,我可以看到它调用
$this->Behaviors->init($this->alias,$this->actsAs)

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



事实上,仔细观察就会发现,
$this->MyModel->Behaviors
行为集合
的一个实例。因此,您可以使用该方法。

有什么原因不能将这些方法命名为其他方法吗?听起来像是一个非常疯狂的想法。。。为什么要向模型对象动态添加方法?如果您需要在多个控制器中使用代码,那么您可能应该使用一个组件,并重新考虑您的方法。@mark-我只有一个控制器在不同的实现中使用模型,模型文件中的任何更改都会影响其他人。@Ross-我只有一个用于搜索函数的控制器。感谢您提供有用的信息,这里有一个与我类似的案例的链接,因为我来自java背景,对此我感到困惑。似乎使用另一个函数或行为是最好的选择。deizel-附加行为是否可以覆盖方法,或者是否有助于添加新方法?刚刚在本地进行了测试,恐怕它们只适用于添加方法。如果希望重写方法,则应扩展该类。