cakephp如何在控制器中引用带变量的模型

时间:2011-04-23 18:59:04

标签: oop cakephp model

我想参考$ this-> Model-> ......在控制器中。但是我想让这些函数变得通用,那么如何动态地使用它呢?我尝试了$ this-> $ modelname,但当然没有用。

CRUD功能对所有型号都是通用的,因此对所有控制器都是通用的,在几种情况下都会覆盖。

示例:两个控制器,每个模型一个 - 信件和电子邮件。有字母控制器和电子邮件控制器。每个都有CRUD功能。视图基本相同,除了模型跟踪每个视图的不同信息(例如,带有send_method的Letter)。它们之间唯一不同的是字段。我已经自动化了那部分,但控制器基本上是相同的东西,除了一些小的变化。我想拥有一个父类,并让它使用特定模型的模型名称,因此每次进行更改时,我都不必继续对每个控制器进行更改。但在某些情况下,我需要参考$ this-> Model-> ......我不知道该怎么做。

2 个答案:

答案 0 :(得分:2)

基于OP

的澄清完成重写

在letters_controller.php的顶部添加:

$this->defaultModel = 'Letter';

在emails_controller.php中添加:

$this->defaultModel = 'Email';

在任一控制器中,要引用模型,请调用

$this->{$this->defaultModel}->function();

答案 1 :(得分:0)

听起来你正试图重新发明轮子:你有没看过CakePHP Scaffolding部分?