CakePHP выбирает значение по умолчанию для входа SELECT
Использование CakePHP:
У меня есть отношения "много-к-одному", пусть притворяется много листьев деревьям. Конечно, я испек форму, чтобы добавить Лист к дереву, и вы можете указать, какое дерево это с раскрывающимся ящиком (тегом), созданным помощником формы.
Единственное, что в поле SELECT всегда по умолчанию используется Дерево # 1, но я бы хотел, чтобы оно по умолчанию добавлялось к дереву:
Например, вызов example.com/leaf/add/5
приведет к созданию интерфейса для добавления нового листа в дерево # 5. В раскрывающемся списке для Leaf.tree_id
по умолчанию будет указано "Дерево 5" вместо "Дерево 1", которое в настоящее время по умолчанию имеет значение.
Что мне нужно, чтобы положить в мой контроллер листа и Leaf view/add.ctp
, чтобы сделать это?
Ответы
Ответ 1
Вы никогда не должны использовать select()
, или text()
, или radio()
и т.д.; это ужасная практика. Вы должны использовать input()
:
$form->input('tree_id', array('options' => $trees));
Затем в контроллере:
$this->data['Leaf']['tree_id'] = $id;
Ответ 2
В CakePHP 1.3 используйте 'default'=>value
, чтобы выбрать значение по умолчанию для выбранного ввода:
$this->Form->input('Leaf.id', array('type'=>'select', 'label'=>'Leaf', 'options'=>$leafs, 'default'=>'3'));
Ответ 3
третий параметр должен быть похож на массив ('selected' = > value)
Ответ 4
$this->Form->input('Leaf.id', array(
'type'=>'select',
'label'=>'Leaf',
'options'=>$leafs,
'value'=>2
));
Это выберет значение позиции второго индекса по умолчанию из списка опций в $ leafs.
Ответ 5
Предполагая, что вы используете хелпер формы для создания формы:
select(string $fieldName, array $options, mixed $selected, array $attributes, boolean $showEmpty)
Установите третий параметр для установки выбранной опции.
Ответ 6
Чтобы сделать текст по умолчанию в поле выбора, используйте метод $form->select()
. Вот как вы это делаете.
$options = array('m'=>'Male','f'=>'Female','n'=>'neutral');
$form->select('Model.name',$options,'f');
Вышеприведенный код по умолчанию выбирает Female
в списке.
Продолжайте печь...
Ответ 7
FormHelper::select(string $fieldName, array $options,
array $attributes)
$attributes['value']
, чтобы установить, какое значение следует выбрать по умолчанию
<?php echo $this->Form->select('status', $list, array(
'empty' => false,
'value' => 1)
); ?>
Ответ 8
Если вы используете cakephp версии 3.0 и выше, вы можете добавить значение по умолчанию в select input, используя пустой атрибут, как показано в приведенном ниже примере.
echo $this->Form->input('category_id', ['options'=>$categories,'empty'=>'Choose']);
Ответ 9
Лучший ответ на это может быть
Вместо этого не используйте 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
));
Надеюсь, поможет.
Ответ 10
версия cakephp> = 3.6
echo $this->Form->control('field_name', ['type' => 'select', 'options' => $departments, 'default' => 'your value']);