Cakephp多个下拉列表与视图

时间:2011-08-14 14:10:31

标签: php cakephp

我正试图通过列表获取Cake中的下拉列表:

  function add() {
    if (!empty($this->data)) {
        $this->User->create();
        if ($this->User->save($this->data)) {
            $this->Session->setFlash(__('The User has been saved', true));
            $this->redirect(array('action' => 'index'));
        } else {
            $this->Session->setFlash(__('The User could not be saved. Please, try again.', true));
        }
        $group = $this->User->Group->find('list');
        $commune = $this->User->Commune->find('list');
        $this->compact('group','commune');
    }
}

该模型已经在属于Group和Commune模型的用户模型中定义了属性,但是我似乎无法将组和公社显示为添加视图页面中的下拉列表。

以下是我添加视图页面的内容。

<div class="Users form">
<?php echo $this->Form->create('User');?>
    <fieldset>
        <legend><?php __('Add User'); ?></legend>
    <?php
        echo $this->Form->input('username');
        echo $this->Form->input('password');
        echo $this->Form->input('group_id', array('type' => 'select'));
        echo $this->Form->input('commune_id');
    ?>
    </fieldset>
<?php echo $this->Form->end(__('Submit', true));?>
</div>
<div class="actions">
    <h3><?php __('Actions'); ?></h3>
    <ul>

        <li><?php echo $this->Html->link(__('List Users', true), array('action' => 'index'));?></li>
    </ul>
</div>

有什么原因导致它无效吗?

2 个答案:

答案 0 :(得分:0)

在视图中尝试此操作:

$this->Form->input('Group');

可替换地:

$this->Form->input('group_id', array('type' => 'select', 'options' => $group));

您正在设置$ group和$ commune,但视图正在寻找$ group_id和$ commune_id。

答案 1 :(得分:0)

您需要使用复数形式才能自动将这些选项加载到表单字段中。

$ groups,$ communes