2012-10-25 35 views
0

蒲凌我的头发,这一点,我知道它的东西很简单,但我一直在努力解决这个问题。为了记录我正在使用cakePHP 2.2。无法填充的相关模型信息一个选择选项 - CakePHP的

我试图填充相关的模型数据的选择输入。

基本上我有用户和user_statuses。用户模型属于UserStatus模型。在user/add()函数中,我希望有一个下拉选择框用UserStatus模型中的数据填充。

赫雷什的代码:

UsersController /添加()

$groups = $this->User->Group->find('list'); 
$UserStatus = $this->User->UserStatus->find('list'); 
$this->set(compact('groups', 'UserStatus')); 

检视/用户/ add.ctp

echo $this->Form->input('user_status_id', array('class' => 'span9')); 

的字段中的用户表格中的关系是user_status_id其链接到user_statuses表中的id。

基于上述选择框不会从user_statuses表的状态填充。有趣的是,它会如果我改变只是视图代码:

echo $this->Form->input('user_status_id', array('class' => 'span9')); 

然而,当我做到这一点是不会写入数据库。

任何帮助将受到欢迎。

在此先感谢。

回答

2

的选项PARAM要解决显示问题,并且只要有您的用户表中的user_status_id,下面的代码应该保存在保存在您的用户模型中的价值。

echo $this->Form->input('User.user_status_id', array('options'=>$UserStatus,'class' => 'span9')); 
+0

设置选项参数是没有必要的。 – Dave

+0

确实如此,但我发现在查看代码时更容易遵循。即使它不是必需的。当遇到像地位这样的复数问题时,它也是一个快速修复。 –

+0

我想继续填充数据库中的选项,而不是来自静态变量var,但是这部分: echo $ this-> Form-> input('User.user_status_id' 似乎可以修复所有问题!谢谢。 –

2

应该是:如果你设置一切正确

$userStatus = $this->User->UserStatus->find('list'); 

(注意是小写 'U')

相关问题