要访问另一个控制器中的模型,目前我在类中使用$this->loadModel('Setting')
命令。
我希望我的模型“设置”可以被任何其他类访问,而不需要我一直使用$this->loadModel('Setting')
,我该怎么做?
答案 0 :(得分:2)
默认情况下,CakePHP会自动加载“适合”控制器名称的模型(例如Post
模型将自动加载到PostsController
)。
也就是说,如果没有指定要加载的模型。
与CakePHP中的大多数内容一样,您可以通过手动覆盖“自动”设置来覆盖它;您可以通过$uses
属性指定在Controller中使用哪些模型;
public $uses = array(
'ModelA',
'ModelB',
);
这将在Controller中加载'ModelA'和'ModelB',可以通过Controller内的$this->ModelA
和$this->ModelB
访问。
Controller的$uses
属性将合并与AppModel的$uses
属性,因此如果您将Setting
模型添加到$uses
1)你的AppController,然后它将自动加载到每个扩展AppController的控制器
阅读文档:The App Controller
如果您需要在项目中的任何地方访问模型,但主要是在某些情况下或在特定操作中您只需访问时,您可以通过{{1}启动模型}};
例如;
ClassRegistry
或者,如果您只需要模型中的某些数据,但在此之后不需要;
$ModelA = ClassRegistry::init('ModelA');