2010-08-14 58 views
0

嘿我有兩個模型用戶和城市,其中一個用戶屬於一個城市,一個城市有很多用戶。 在city table上我有city_id和city_name。CakePHP一對多組合框

我已經使用過使用過的蛋糕烘烤並創建了用戶模型,當我添加一個新用戶時,城市字段下的組合框顯示城市的ID而不是名稱。

我試過幾種方法來顯示城市的名稱,而不是id,但我失敗了。

回答

1

你沒有提到你試過的東西,但通常你會使用模型的displayName屬性來設置應該使用記錄的「標題」的字段。在你的情況,我會想:

$this->displayName = 'city_name'; 

注意,在1.3中,它看起來像屬性名稱displayField而非displayName

+0

默認情況下,CakePHP將使用'標題',假定存在這樣的字段,並且未定義$ this-> displayField。 – Wayne 2010-08-17 02:26:38

1

Cake需要一個特定的表格佈局以使自動化工作。 Rob解釋瞭如何解決這個問題。但是如果你想避免編寫額外的代碼行,你應該考慮組織你的表。

CREATE TABLE `cities` (
    `id` int(11) AUTO_INCREMENT NOT NULL, 
    `name` varchar(25) NOT NULL, 
    PRIMARY KEY (`id`) 
) 

當你烤這個模型時,Cake會自動使用name作爲顯示名稱。這將適用於您創建的每個表。此外,如果您使用id作爲表格,它將自動知道如何將其引用爲其他表格的外鍵,如city_id