2013-10-14 64 views
0

我是一個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

這些幾乎肯定不是CakePHP框架的一部分,而是您正在使用的代碼庫的一部分。我懷疑這是一個保存模型別名的字符串。 $ this - > {$ this-> model}然後將獲得具有該別名的模型。 – Kai

回答

1

首先,CakePHP使用「約定優先配置」約定。這很大程度上解釋了很多! :) 有一個叫Inflector的東西 - 它「只是」'多元化和單化英語名詞。在整個框架中由Cake的命名約定使用。'

這與約定和一些關鍵原則結合使Cake有可能告訴哪個類綁定到其他類。

因此,在控制器中的$this->model將是與該控制器直接相關的模型。 例如在UsersController,$this->model將是User模型。

其他綁定模型在控制器的$uses屬性中定義。 通過$this->model你只能打電話給控制器自己的模型。 呼叫另一綁定模型(對前Post)使用方法:

$this->Post->findAll(); 

$this->model我剛剛從任何給定的控制器方便快捷。