>假设我有一个经典的 Post 模型,并且我也创建了一个作者模型。
我有一些基本问题:
-
Post对象是在PostsController中自动创建的?
-
为了创建一个帖子的实例 AuthorsController,是唯一的方法
$this->Post = ClassRegistry::init('Post');
请注意,通过执行" $this->Post",我假设将在此行中创建Post变量。我说的对吗?
提前谢谢你!
查看模型关联。如果您的关联设置正确,您将能够
$this->Author->Post
以从作者控制器访问发布模型。如果模型不相关,但您仍然需要访问它,则可以使用 $uses 数组执行此操作。
就你的第一个问题而言,你是对的。所有控制器都扩展了 Appcontroller,该控制器导入/lib/中的默认蛋糕控制器类。您可以在 cakePHP 控制器文件中的第 376 行看到,在加载了 $uses 数组中给出的所有模型之后,将加载名称等于类名的模型。
使用数组中的所有模型
您可以访问在 uses 属性中声明的所有模型的$this->MmodelName
- 如果未声明此属性,则默认为与控制器对应的模型 - 即 PostsContorller
-> Post
模型。
在$uses
中声明为在第一次引用时创建/实例化的模型 - 即它们是延迟创建的。