我可以从CakePHP中的控制器访问哪些型号?

时间:2012-07-01 02:37:37

标签: php cakephp

假设我有经典的Post模型,我也创建了一个Author模型。

我有一些基本问题:

  1. 在PostsController中自动创建Post对象?

  2. 为了创建Post whithin AuthorsController的实例,是

  3. 的唯一方法

    $this->Post = ClassRegistry::init('Post');

    请注意,通过执行“$ this-> Post”,我假设将在此行中创建Post变量。我是对的吗?

    提前谢谢!

2 个答案:

答案 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中声明的模型在第一次引用时创建/实例化 - 即它们是懒惰创建的。