CakePHP多个控制器使用相同的模型

CakePHP多个控制器使用相同的模型,php,cakephp,cakephp-2.5,Php,Cakephp,Cakephp 2.5,在CakePHP 2.5中,我有以下控制器: - CommonsController extends AppController { ... } - MyController extends CommonsController { ... } - GoodController extends CommonsController { ... } 我有以下型号: - Work1 extends AppModel { ... } - Work2 extends A

在CakePHP 2.5中,我有以下控制器:

 - CommonsController extends AppController { ... }   
 - MyController extends CommonsController { ... }    
 - GoodController extends CommonsController { ... }   
我有以下型号:

 - Work1 extends AppModel  { ... }  
 - Work2 extends AppModel  { ... }  
 - Work3 extends AppModel  { ... }  
在我的CommonController中,我有45个使用Work1、Work2、Work3模型的方法

  - CommonsController::method1() { // using Work1 model }  
  - CommonsController::method2() { // using Work1 model }  
  ....
  - CommonsController::method16() { // using Work2 model }  
  - CommonsController::method17() { // using Work2 model }  
  ....
  - CommonsController::method44() { // using Work3 model }  
  - CommonsController::method45() { // using Work3 model }  
通过控制器内部的这种结构,我可以调用如下模型:

   // inside CommonsController
   $this->method18();
   $this->method26();

   // inside MyController
   $this->method18();
   $this->method42();

   // inside GoodController
   $this->method18();
   $this->method36();

在CakePHP中,对于常见的控制器函数,我使用组件。控制器中是否有使用通用模型的结构?

在控制器中使用通用模型的结构是什么意思?要在控制器中使用模型,请使用$uses变量。FWIW:我认为你的控制器不应该使用那么多互不相关的模型。一旦可以使用一个模型,就可以使用与第一个模型相关的所有其他模型。多个控制器可以使用相同的组件代码。我搜索在不同的控制器中使用多个模型代码。要在不同的控制器中使用多个模型代码::为了运行任何模型的代码,也就是说,要从控制器中执行特定模型的方法,只需将该模型的名称放入$uses变量中即可。例如,在您的控制器中,可以有public$uses=array'Recipe'、'User';它允许您使用配方和用户模型的方法。要执行它们,请使用$this->Recipe->recipeMethod