所有其他类都可访问的模型

时间:2013-03-28 19:03:28

标签: cakephp cakephp-2.0

要访问另一个控制器中的模型,目前我在类中使用$this->loadModel('Setting')命令。 我希望我的模型“设置”可以被任何其他类访问,而不需要我一直使用$this->loadModel('Setting'),我该怎么做?

1 个答案:

答案 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

Ad-Hoc访问模型

如果您需要在项目中的任何地方访问模型,但主要是在某些情况下或在特定操作中您只需访问时,您可以通过{{1}启动模型}};

例如;

ClassRegistry

或者,如果您只需要模型中的某些数据,但在此之后不需要;

 $ModelA = ClassRegistry::init('ModelA');