访问另一个CakePHP';控制器中的模型?

访问另一个CakePHP';控制器中的模型?,cakephp,Cakephp,假设我有两个这样的控制器Table1sController,和Table2sController。 具有相应的模型:Table1sModel,Table2sModel 在表格1sController中,我得到了以下信息: $this->Table1sModel->action(); 假设我想访问Table2sModel中的一些数据 如何在Table1sController中执行类似操作? 我在Table1sController中尝试过这一点: $this->Table2sMo

假设我有两个这样的控制器
Table1sController
,和
Table2sController
。 具有相应的模型:
Table1sModel
Table2sModel

表格1sController
中,我得到了以下信息:

$this->Table1sModel->action();
假设我想访问
Table2sModel
中的一些数据

如何在
Table1sController
中执行类似操作? 我在Table1sController中尝试过这一点:

$this->Table2sModel->action();
但我收到了如下错误消息:

未定义的属性:Table1sController::$Table2sModel


这里有几种方法

如果您的模型定义了关联(hasMany等),那么您可以通过以下方式访问该模型的方法(假设您在Model1Controller中):

如果两个模型之间没有模型关联,但希望能够使用Model2的方法,则可以在model1Controller的$uses属性中添加一个条目。看


最后,如果它是一个临时连接(您不希望每次都加载其他模型的开销,因为您很少访问model2),请查看手册中关于动态创建/销毁关联的部分,位于

在任何控制器中,您都可以指定$uses=array('Table1sModel','Table2sModel','LolModel')并在控制器中使用所需的每个模型。您没有调用其他控制器来访问模型。模型用于数据访问,您可以直接从任何控制器访问所需的模型

我知道,很多MVC示例几乎总是显示一个控制器的一页和一个模型,这是非常错误的,因为99%的情况下,一个控制器的一个站点使用不同模型的许多不同部分

(如果确实需要调用操作,请使用$this-requestAction()

$this->Model1->Model2->method();