我想参考$ this-> Model-> ......在控制器中。但是我想让这些函数变得通用,那么如何动态地使用它呢?我尝试了$ this-> $ modelname,但当然没有用。
CRUD功能对所有型号都是通用的,因此对所有控制器都是通用的,在几种情况下都会覆盖。
示例:两个控制器,每个模型一个 - 信件和电子邮件。有字母控制器和电子邮件控制器。每个都有CRUD功能。视图基本相同,除了模型跟踪每个视图的不同信息(例如,带有send_method的Letter)。它们之间唯一不同的是字段。我已经自动化了那部分,但控制器基本上是相同的东西,除了一些小的变化。我想拥有一个父类,并让它使用特定模型的模型名称,因此每次进行更改时,我都不必继续对每个控制器进行更改。但在某些情况下,我需要参考$ this-> Model-> ......我不知道该怎么做。
答案 0 :(得分:2)
基于OP
的澄清完成重写在letters_controller.php的顶部添加:
$this->defaultModel = 'Letter';
在emails_controller.php中添加:
$this->defaultModel = 'Email';
在任一控制器中,要引用模型,请调用
$this->{$this->defaultModel}->function();
答案 1 :(得分:0)
听起来你正试图重新发明轮子:你有没看过CakePHP Scaffolding部分?