了解'$ this->模型'

时间:2013-10-14 16:57:43

标签: php cakephp cakephp-1.3

我是一名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}'在这种情况下引用我不知道。

1 个答案:

答案 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我只是一个方便的快捷方式,来自任何给定的控制器。