Подтвердить что ты не робот

CakePHP выбирает значение по умолчанию для входа SELECT

Использование CakePHP:

У меня есть отношения "много-к-одному", пусть притворяется много листьев деревьям. Конечно, я испек форму, чтобы добавить Лист к дереву, и вы можете указать, какое дерево это с раскрывающимся ящиком (тегом), созданным помощником формы.

Единственное, что в поле SELECT всегда по умолчанию используется Дерево # 1, но я бы хотел, чтобы оно по умолчанию добавлялось к дереву:

Например, вызов example.com/leaf/add/5 приведет к созданию интерфейса для добавления нового листа в дерево # 5. В раскрывающемся списке для Leaf.tree_id по умолчанию будет указано "Дерево 5" вместо "Дерево 1", которое в настоящее время по умолчанию имеет значение.

Что мне нужно, чтобы положить в мой контроллер листа и Leaf view/add.ctp, чтобы сделать это?

4b9b3361

Ответ 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']);