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

Использование 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 чтобы сделать это?

Solutions Collecting From Web of "CakePHP выбирает значение по умолчанию для входа SELECT"

Вы никогда не должны использовать 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']);