web-dev-qa-db-ja.com

CakePHPはSELECT入力のデフォルト値を選択します

CakePHPの使用:

私は多対1の関係にあります。多くのリーフからツリーへのふりをしましょう。もちろん、フォームをベイクしてツリーにリーフを追加します。フォームヘルパーによって作成されたドロップダウンボックス(タグ)を使用して、ツリーを指定できます。

唯一のものは、SELECTボックスは常にツリー#1にデフォルト設定されますが、追加先のツリーにデフォルト設定したいです:

たとえば、example.com/leaf/add/5を呼び出すと、新しいリーフをツリー#5に追加するためのインターフェイスが表示されます。 Leaf.tree_idのドロップダウンボックスは、現在デフォルトになっている「ツリー1」ではなく、「ツリー5」にデフォルト設定されます。

これを行うには、リーフコントローラーとリーフview/add.ctpに何を入れる必要がありますか?

15
erjiang

select()、またはtext()、またはradio()などを使用しないでください。それはひどい練習です。 input()を使用する必要があります。

$form->input('tree_id', array('options' => $trees));

次に、コントローラーで:

$this->data['Leaf']['tree_id'] = $id;
20
Miles Johnson

CakePHP 1.3では、'default'=>valueを使用して、選択入力でデフォルト値を選択します。

$this->Form->input('Leaf.id', array('type'=>'select', 'label'=>'Leaf', 'options'=>$leafs, 'default'=>'3'));
52
Ryan

3番目のパラメーターはarray( 'selected' => value)のようにする必要があります

8
Renjith Chacko
 $this->Form->input('Leaf.id', array(
'type'=>'select',
'label'=>'Leaf',
'options'=>$leafs,
'value'=>2
));

これにより、$ leafsのオプションのリストからデフォルトの2番目のインデックス位置の値が選択されます。

8
Sadikhasan

フォームヘルパーを使用してフォームを生成すると仮定します。

select(string $fieldName, array $options, mixed $selected, array $attributes, boolean $showEmpty)

3番目のパラメーターを設定して、選択したオプションを設定します。

1
Funky Dude

cakephpバージョン> = 3.6

echo $this->Form->control('field_name', ['type' => 'select', 'options' => $departments, 'default' => 'your value']);
1
Yasin

これに対する最良の答えは

このジョブではselectを使用せず、代わりに入力を使用

このような

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
        ));

それが役に立てば幸い。

0
M.suleman Khan
FormHelper::select(string $fieldName, array $options, 
array $attributes)

$attributes['value']どの値をデフォルトとして選択するかを設定します

<?php echo $this->Form->select('status', $list, array(
    'empty' => false, 
    'value' => 1)
); ?>
0
Zimmo

選択ボックスのテキストをデフォルトにするには、$form->select()メソッドを使用します。方法は次のとおりです。

$options = array('m'=>'Male','f'=>'Female','n'=>'neutral');

$form->select('Model.name',$options,'f');

上記のコードは、デフォルトでリストボックスでFemaleを選択します。

焼き続ける...

0
Haroon

Cakephpバージョン3.0以降を使用している場合、以下の例に示すように、空の属性を使用して選択入力にデフォルト値を追加できます。

echo $this->Form->input('category_id', ['options'=>$categories,'empty'=>'Choose']);
0
rakeysharyal