使用CakePHP:
我有一个多到一的关系,让我们假装这是很多叶子来树木。 当然,我烤了一个形式向叶加入到一棵树,你可以指定它是由形式帮助创建了一个下拉框(标签)的树。
唯一的一点是,选择框始终默认为树#1,但我想它默认为它被添加到树:
例如,调用example.com/leaf/add/5
会弹出界面自新添加到树#5。 对于下拉框Leaf.tree_id
将默认为“树5”,而不是“树1”,它目前默认为。
我需要什么,把我的叶控制器和叶view/add.ctp
做到这一点?
使用CakePHP:
我有一个多到一的关系,让我们假装这是很多叶子来树木。 当然,我烤了一个形式向叶加入到一棵树,你可以指定它是由形式帮助创建了一个下拉框(标签)的树。
唯一的一点是,选择框始终默认为树#1,但我想它默认为它被添加到树:
例如,调用example.com/leaf/add/5
会弹出界面自新添加到树#5。 对于下拉框Leaf.tree_id
将默认为“树5”,而不是“树1”,它目前默认为。
我需要什么,把我的叶控制器和叶view/add.ctp
做到这一点?
你永远不应该使用select()
,或text()
或radio()
等; 这是可怕的做法。 您应该使用input()
$form->input('tree_id', array('options' => $trees));
然后在控制器:
$this->data['Leaf']['tree_id'] = $id;
在CakePHP 1.3中,使用'default'=>value
来选择的选择输入的默认值:
$this->Form->input('Leaf.id', array('type'=>'select', 'label'=>'Leaf', 'options'=>$leafs, 'default'=>'3'));
第三个参数应该是(“选择” =>值)状阵列
$this->Form->input('Leaf.id', array(
'type'=>'select',
'label'=>'Leaf',
'options'=>$leafs,
'value'=>2
));
这将选择从$叶子选项列表默认的第二个索引位置值。
假设你使用表单辅助函数生成表单:
select(string $fieldName, array $options, mixed $selected, array $attributes, boolean $showEmpty)
设置第三个参数来设置所选选项。
要在一个选择框文本默认使用$form->select()
方法。 这里是你如何做到这一点。
$options = array('m'=>'Male','f'=>'Female','n'=>'neutral');
$form->select('Model.name',$options,'f');
上面的代码将选择Female
在默认列表框中。
保持烘焙...
FormHelper::select(string $fieldName, array $options,
array $attributes)
$attributes['value']
来设置,其值应选择默认
<?php echo $this->Form->select('status', $list, array(
'empty' => false,
'value' => 1)
); ?>
如果您正在使用以上CakePHP的3.0版,那么您可以在选择输入使用空属性添加默认值下面的例子给出英寸
echo $this->Form->input('category_id', ['options'=>$categories,'empty'=>'Choose']);
最好的答案,这可能是
不要这个工作使用的输入使用SELCT代替
像这样
echo $this->Form->input('field_name', array(
'type' => 'select',
'options' => $options_arr,
'label' => 'label here',
'value' => $id, // default value
'escape' => false, // prevent HTML being automatically escaped
'error' => false,
'class' => 'form-control' // custom class you want to enter
));
希望能帮助到你。
cakephp的版本> = 3.6
echo $this->Form->control('field_name', ['type' => 'select', 'options' => $departments, 'default' => 'your value']);