假设我有经典的Post模型,我也创建了一个Author模型。
我有一些基本问题:
在PostsController中自动创建Post对象?
为了创建Post whithin AuthorsController的实例,是
$this->Post = ClassRegistry::init('Post');
请注意,通过执行“$ this-> Post”,我假设将在此行中创建Post变量。我是对的吗?
提前谢谢!
答案 0 :(得分:4)
查看model associations。如果您的关联设置正确,您将能够
$this->Author->Post
从Authorscontroller访问Post模型。如果模型不相关但您仍需要访问它,则可以使用$uses array进行访问。
就你的第一个问题而言,你是对的。所有控制器都扩展Appcontroller,它导入/ lib /中的默认cake Controller类。你可以在cakePHP controller file here的第376行看到,在加载了$ uses数组中给出的所有模型之后,加载了名称等于类名的模型。
答案 1 :(得分:0)
您可以访问uses property中声明的所有模型的$this->MmodelName
- 如果未声明此属性,则默认为与控制器对应的模型 - 即PostsContorller
- > Post
模型。
在$uses
中声明的模型在第一次引用时创建/实例化 - 即它们是懒惰创建的。