Использование CakePHP:
У меня есть отношения «один-к-одному», давайте притворимся, что это много листьев деревьев. Конечно, я испек форму, чтобы добавить лист к дереву, и вы можете указать, какое дерево это с раскрывающимся ящиком (тегом), созданным помощником формы.
Единственное, что ядро SELECT по умолчанию имеет значение Tree # 1, но я бы хотел, чтобы оно было по умолчанию для дерева, в которое он добавляется:
Например, вызов example.com/leaf/add/5
вызовет интерфейс для добавления нового Leaf to Tree # 5. В раскрывающемся Leaf.tree_id
умолчанию будет Leaf.tree_id
«Дерево 5», а не «Дерево 1», на которое он по умолчанию по умолчанию.
Что мне нужно, чтобы положить в мой контроллер листа и Leaf 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
для выбора 'default'=>value
по умолчанию в выбранном входе:
$this->Form->input('Leaf.id', array('type'=>'select', 'label'=>'Leaf', 'options'=>$leafs, 'default'=>'3'));
третий параметр должен быть похож на массив ('selected' => value)
$this->Form->input('Leaf.id', array( 'type'=>'select', 'label'=>'Leaf', 'options'=>$leafs, 'value'=>2 ));
Это будет выбирать значение по умолчанию второго значения по умолчанию из списка опций в $ leafs.
Предполагая, что вы используете хелпер формы для создания формы:
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 и выше, вы можете добавить значение по умолчанию в select input, используя пустой атрибут, как показано в приведенном ниже примере.
echo $this->Form->input('category_id', ['options'=>$categories,'empty'=>'Choose']);