我有两张表,users{name,id,age_range_id}
和age_ranges{id,range_name}
还有两个模型,控制器和正确的视图文件。
在视图中,我有adduser.ctp
文件,其中包含正确的格式
我想要的是有一个输入(选择)来保存age_ranges.name
字段中的选项
所以,在用户模型中,我添加了var $hasMany = 'age_ranges';
下一步是什么?
我知道我可以使用$this->set
将选项存储为控制器中的数组,然后在视图中使用它。
但我认为(错误地?)通过关联模型,有一种“自动”方式来做到这一点。
这引出了我的问题:如何?
答案 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