与CakePHP的简单关联

与CakePHP的简单关联,php,cakephp,cakephp-model,form-helpers,Php,Cakephp,Cakephp Model,Form Helpers,我最近开始研究CakePHP——到目前为止我非常喜欢它。然而,我需要问一个相当简单的问题: 是关于模特协会的。我有两个模型用户和组。一个用户可以有多个组,而一个组只能有一个用户。所以我把它做成这样: <?php class Group extends AppModel { var $name = 'Group'; var $belongsTo = 'User'; } ?> <?php class User extends AppModel { var

我最近开始研究CakePHP——到目前为止我非常喜欢它。然而,我需要问一个相当简单的问题:

是关于模特协会的。我有两个模型用户和组。一个用户可以有多个组,而一个组只能有一个用户。所以我把它做成这样:

<?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');
?>
添加组

用户id自动转换为下拉列表-但是没有任何选项。我需要做什么?我假设我需要放在某个地方,它应该从用户表中获取“name”。

您应该在组控制器的add Group函数中设置一个变量:
$users=$this->Group->User->find('all',array('fields'=>array('DISTINCT User.User\u id'))
$this->set('user\u id',$users)

然后在视图中,创建如下输入:

echo$this->Form->input('user_id',array('options'=>$user_id))

我终于在文档中找到了答案(http://book.cakephp.org/view/1390/Automagic-Form-Elements)

解决办法是: 添加方法中的组控制器:

$this->set('users', $this->Group->User->find('list'));
并且认为:

echo $this->Form->input('user_id');

又好又简单。无论如何谢谢你

谢谢你的回复。我们就要到了——不过这个答案会打印下拉列表中的所有列。这意味着用户表中会有日期、名称、id等选项。我只需要用户标签上的“名称”。是的,对,我更新了代码。但“列表”肯定更简洁。