我是一名cakePHP新手,刚刚被分配到使用cakePHP 1.3构建的现有系统上工作。当我熟悉项目及其内容时,他们是代码片段,我不太明白。一次又一次(通常在控制器文件中)我看到了这些:
'$这 - >模型'
'$这 - >模型'
'$这 - > {$这 - >模型}'
搜索谷歌,蛋糕文档和stackoverflow尚未揭示这些字符串究竟是指什么的简明解释。我正在使用的许多控制器都有多个与之交互的模型,我怎么知道这些片段正在调用哪个?
例如,web_forms_controller.php有3个模型,它们与web_forms.php,web_forms_field.php和web_forms_submission.php一起使用。我觉得我在这里缺少一些基本的东西,但RTM还没有透露我所追求的答案。
所以在上面的例子中,我猜测在web_forms_controller.php中看到的'$ this-> model'和'$ this-> Model'是指web_forms.php模型。什么'$ this-> {$ this-> model}'在这种情况下引用我不知道。
答案 0 :(得分:1)
首先,CakePHP使用“约定优于配置”约定。这很大程度上解释了很多! :) 有一种称为Inflector的东西 - 它“只是”'复数化和单一化英语名词。在整个框架中由Cake的命名约定使用。'
这与约定和一些关键原则结合使得Cake可以告诉哪个Class绑定到哪个类。
因此,控制器中的$this->model
将是与此Controller直接关联的Model。
例如,在UsersController
中,$this->model
将是User
模型。
其他绑定模型在Controller的$uses
属性中定义。
通过$this->model
,您只能调用控制器自己的模型。
要调用另一个绑定模型(对于前Post
),请使用:
$this->Post->findAll();
$this->model
我只是一个方便的快捷方式,来自任何给定的控制器。