我最近开始研究CakePHP - 我到目前为止都很喜欢它。但是,我需要提出一个相当简单的问题:
关于模特协会。我有2个型号用户和组。用户可以拥有多个组,而一个组只能拥有一个用户。所以我做到了这样:
<?php
class Group extends AppModel {
var $name = 'Group';
var $belongsTo = 'User';
}
?>
<?php
class User extends AppModel {
var $name = 'User';
var $hasMany = 'Group';
}
?>
然后在添加组页面上,我希望可以从下拉列表中选择用户。我的群组添加视图如下:
<h1>Add Group</h1>
<?php
echo $this->Form->create('Group');
echo $this->Form->input('user_id');
echo $this->Form->input('name');
echo $this->Form->input('pincode');
echo $this->Form->input('private');
echo $this->Form->end('Create group');
?>
user_id会自动转换为下拉列表 - 但是没有任何选项。我需要做什么?我假设我需要放置一个应该从User表中获取“名称”的地方。
答案 0 :(得分:1)
我终于在文档中找到了答案(http://book.cakephp.org/view/1390/Automagic-Form-Elements)。
解决方案是: add方法中的组控制器:
$this->set('users', $this->Group->User->find('list'));
在视图中:
echo $this->Form->input('user_id');
美好而简单。不管怎样,谢谢!
答案 1 :(得分:0)
您应该在组控制器的添加组功能中设置变量:
$users = $this->Group->User->find('all', array('fields' => array('DISTINCT User.user_id')));
$this->set('user_ids', $users);
然后在视图中,创建如下输入:
echo $this->Form->input('user_id', array('options' => $user_ids));