2011-04-15 68 views
0

我有Tarifs,每个tarif hasManyPricePricebelongsToUserGroup。所以基本上,当用户的群体发生变化时,价格会发生变化 - 无关紧要。cakephp选择框递归2

视图看起来像这样

<?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'),但他们都提供了没有选项的选择框。 如何设置输入来做我想做的事? 感谢

+0

你可以添加PR($价格);并向我们​​展示你的一个数组?你是正确的$ this-> form-> input(array('type'=>'select','option'=> $ price ['UserGroup'] ['name']));注意:这是一个盲目的回应。 – 2011-04-17 11:06:15

回答

1

在你的控制器,你需要添加:

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

然后在视图中,设置下拉像:

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

然后,您可以添加$ user_groups作为一个选项以任何形式 - >输入,它将成为下拉时使用:

array('options' => $user_groups) 
+0

这正是我需要的,谢谢;) – Elwhis 2011-05-07 14:15:11