我正在构建一个应用程序,管理员可以将多个用户添加到组中。在UserController的Add操作中,我有:
$this->set('groups', $this->User->Group->find('list'));
输出应该是一个选择框,其中不同的组当前存在于组表中。
Groups table:
'id' 'group' 'comments'
Model (user):
public $belongsTo = array('Group');
UserController:
$this->set('groups', $this->User->Group->find('list'));
View (Users/add)
echo $this->Form->input('Group_id');
我做错了什么?
在Group
类中添加此行
var $displayField = 'group';
这将告诉Cake,对于这个类,它应该将group
视为标准模型中的name
字段,find('list')
将产生您想要的结果。
看起来是正确的,我假设您在users表中有group_id字段。你可能想尝试几件事。
- 更改大小写,例如将Group_id更改为Group_id
-
按照更改选择框的显示
echo$this->Form->input('group_id',$groups);
字符的大小写在编程中非常重要。不仅是文件,还有类名,在您的情况下还有字段名。否则您的代码将无法正常工作:
echo $this->Form->input('group_id');
应该解决问题。
如果我没有错的话,find('list')正在查找id和name,所以您必须在您的情况下指定字段,因为您缺少name字段我希望这能帮助