cakePHP:自动表单元素,填充选择列表

时间:2011-02-02 17:58:05

标签: forms cakephp foreign-keys models

我有两张表,users{name,id,age_range_id}age_ranges{id,range_name} 还有两个模型,控制器和正确的视图文件。

在视图中,我有adduser.ctp文件,其中包含正确的格式 我想要的是有一个输入(选择)来保存age_ranges.name字段中的选项 所以,在用户模型中,我添加了var $hasMany = 'age_ranges'; 下一步是什么?

我知道我可以使用$this->set将选项存储为控制器中的数组,然后在视图中使用它。
但我认为(错误地?)通过关联模型,有一种“自动”方式来做到这一点。 这引出了我的问题:如何?

3 个答案:

答案 0 :(得分:1)

添加$ this-> set('ageRanges',$ this-> User-> AgeRange-> find('list'));控制器动作

然后将$ this-> Form->输入('age_range_id')添加到表单

答案 1 :(得分:1)

你可以这样做:

$this->User->AgeRange->find('list')并将其传递给视图以获取选择语句

答案 2 :(得分:1)

我不会重复索普和教条已经写过的内容。他们都是正确的。

然而,虽然很难确定没有看到你的模型文件,但常识告诉我,在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