我有Tarifs
,每个tarif 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')
,但他们都提供了没有选项的选择框。
如何设置输入以执行我想要的操作?
感谢
答案 0 :(得分: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添加为任何Form-&gt;输入的选项,并在使用时成为下拉列表:
array('options' => $user_groups)