2013-04-09 77 views
1

讓我們說之間的函數我有一個函數:CakePHP的調用模型和視圖

function getCarName() { 
    return array(1 => 'BMW', 2 => 'MERCEDEZ BENZ', 3 => 'RENAULT'); 
} 

我將使用此功能在兩個模型和視圖,我應該AppHelper和汽車模型創建兩個相同的功能?什麼是實現這一目標的正確方法?

+0

你會想保持它乾燥(不要重複自己)。因此你的方法將無法工作。 可以使其成爲普通的模型方法,並使用控制器將其關閉。 或者使用類似於這種方法的靜態模型方法: http://www.dereuromark.de/2010/06/24/static-enums-or-semihardcoded-attributes/ - 好像你在這裏得到了一些枚舉像數組 - 你也可能想在你的表單中使用 – mark 2013-04-09 10:05:49

回答

4

有兩個功能做同樣的事情通常是一個壞主意,因爲它違反了don't repeat yourself原則。

相反,我會的功能添加到您的Car模型,然後從你的控制器(S)數據的東西,如傳遞給你的看法(S):

$this->set('carNames', $this->Car->getCarNames()); 

車名則可用該視圖通過$carNames變量。