2011-02-02 115 views
0

我有兩個表,users{name,id,age_range_id}age_ranges{id,range_name}
還有兩個模型,控制器和正確的視圖文件。cakePHP:automagic表單元素,填充選擇列表

在視圖中我有adduser.ctp文件,其中包含正確的格式。
我想要的是有一個輸入(選擇),將從​​字段的選項。
因此,在我添加的用戶模型中var $hasMany = 'age_ranges'; 接下來是什麼?

我知道我可以使用$this->set將選項作爲數組存儲在控制器中,然後在視圖中使用它。
但我假設(錯誤?)通過關聯模型,有一種「自動」的方式來做到這一點。 這導致了我的問題:如何?

回答

1

我不會重複索普和教條式的東西。他們都是正確的。但是,雖然很難確定沒有看到你的模型文件,commonsense告訴我,在User模型中,關係應該是User:hasOne:AgeRange,而在AgeRange模型中,它是AgeRange:hasMany:User,而不是就像你寫的那樣。此外,您不需要在關係中指定表名('age_ranges'),但可以指定型號名稱('AgeRange')。

參見手冊中的這些頁面:

http://book.cakephp.org/view/1001/Understanding-Models & http://book.cakephp.org/view/1039/Associations-Linking-Models-Together

+0

+1呀。型號名稱:D – 2011-02-02 18:55:24

1

add $ this-> set('ageRanges',$ this-> User-> AgeRange-> find('list'));控制器動作

然後加上$這個 - >形式 - >輸入(「age_range_id」)的形式

1

你可以這樣做:

$this->User->AgeRange->find('list')並傳遞給視圖的select語句