与CakePHP的简单关联
我最近开始研究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
<?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等选项。我只需要用户标签上的“名称”。是的,对,我更新了代码。但“列表”肯定更简洁。