поле выбора CakePHP с рекурсивным 2 - PullRequest
0 голосов
/ 15 апреля 2011

У меня есть Tarifs, каждый тариф hasMany Price и Price также belongsTo UserGroup. Так что в основном цены меняются, когда меняется группа пользователей - не так уж и важно.

Вид выглядит так

<?php echo $this->Form->create('Tarif');?>
    ...
        $i=0;
        foreach ($this->data['Price'] as $price) {

            echo "<tr><td>".$this->Form->input("Price.$i.price", array('label' => false))."</td>";
            echo "<td>".$this->Form->input("Price.$i.currency", array('label' => false))."</td>";
            echo "<td>".$this->Form->input("Price.$i.UserGroup.id", array('label' => false))."</td>";
    ...     

И мне нужно, чтобы вход UserGroup.id отображался как выбор, где каждая опция отображает имя группы и имеет id в качестве значения. Значения user_group_id хороши, но отображаются в текстовом поле. Я пробовал $this->Form->select и $this->Form->input(...,'type'=>'select'), но оба предоставили поля выбора без опций. Как настроить вход, чтобы делать то, что я хочу? Спасибо

1 Ответ

1 голос
/ 19 апреля 2011

В вашем контроллере вам нужно добавить:

$user_groups = $this->UserGroup->find('list');
$this->set(compact('user_groups');

Затем в представлении вы устанавливаете раскрывающийся список следующим образом:

<?php echo $this->Form->input('user_group', array('options' => $user_groups)); ?>

Затем вы можете добавить $ user_groups в качестве опции к любому входу Form->, и он станет выпадающим при использовании:

array('options' => $user_groups)
...