首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cakephp $uses,$this->loadModel

cakephp $uses,$this->loadModel
EN

Stack Overflow用户
提问于 2014-10-26 07:39:31
回答 2查看 3.9K关注 0票数 0

$uses和$this->loadModel()之间有什么区别?

CakePHPCookbook,第2版。

第61页:

$this->loadModel(‘User’,2);

第62页:

类RecipesController扩展AppController {

public $uses =array(“食谱”,“用户”);

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-26 10:28:03

User定义了控制器在默认情况下可以访问的模型,如果您不定义这个模型,它将是该控制器的模型,即UsersController默认将加载用户(以及在AppController的$uses中定义的任何模型)。

loadModel只在调用它的情况下才会这样做,如果您只需要在一个动作中使用该模型,而不需要在其他操作中使用该模型,则情况会更好。

您还可以使用ClassRegistry::init(‘食谱’)->find(‘all’);等等,这将返回模型的单个实例以供一次性使用,但不会将模型添加到对象映射中。

您真正应该问自己的是,为什么要将模型加载到控制器中?理想情况下,您应该在模型之间建立关系,比如如果您在食谱控制器中,您可以调用$this->食谱和$this->食谱->用户。

我发现在Shell中最常见的用法是,默认情况下它没有直接访问模型的权限。

根据ndm的评论编辑

票数 2
EN

Stack Overflow用户

发布于 2014-10-26 08:38:00

根据使用荷载模型的文档,$uses是一个或多个模型可供整个控制器使用的简单方法,而当您想要访问不在$uses列表中的模型时,则使用loadModel

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26570850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档