2011-04-23 52 views
0

我想在控制器中引用$ this-> Model-> ...。但我想使這些函數具有通用性,那麼如何動態地使用它呢?我試過$ this - > $ modelname,但當然沒有用。cakephp如何在控制器中引用帶有變量的模型

CRUD功能對於所有模型和所有控制器都是通用的,在一些情況下覆蓋。

示例:兩個控制器,每個型號一個 - Letter和Email。有字母控制器和電子郵件控制器。每個都有CRUD功能。這些視圖基本上是相同的,除了模型跟蹤每個信息的不同信息(例如,帶有send_method的Letter)。唯一不同的是它們之間的區域。我已經自動化了這個部分,但除了一些小的變化之外,控制器本質上是相同的。我想擁有一個父類,並讓它使用特定模型的模型名稱,所以我不必每次更改時都要對每個控制器進行更改。但在某些情況下,我需要引用$ this-> Model-> ...並且我不知道該怎麼做。

+0

你試過$ this - > {$ modelname}嗎? – chustar 2011-04-23 19:01:24

+0

提供一點細節。你想做什麼?該功能是否適用於所有型號或所有控制器? – 2011-04-23 19:03:29

+0

@chustar否我沒有:括號做什麼? – thf 2011-04-23 19:04:18

回答

2

Commplete改寫基於澄清OP

在letters_controller.php附加的頂部:

$this->defaultModel = 'Letter'; 

而且在emails_controller.php加:

$this->defaultModel = 'Email'; 

在任一控制器,參考該型號,致電

$this->{$this->defaultModel}->function(); 
+0

我認爲OP想要做的是能夠改變他們是否正在調用ModelA或ModelB。 – chustar 2011-04-23 19:16:42

+0

這個問題可能不清楚。我會嘗試編輯它。 – thf 2011-04-23 21:12:44

相關問題