8

FormHelper によって生成された選択ドロップダウンで空のオプションの値を渡す方法はありますか?

私はこのような入力を作成しています:

echo $this->Form->input('supplier_id', array('empty'=>true));

このようにコントローラーから自動的に提供される値で

$suppliers = $this->Product->Supplier->find('list');
$this->set(compact('suppliers'));

選択ボックスは次のように作成されます。

<select name="data[Product][supplier_id]" class="form-control" id="ProductSupplierId">
  <option value=""></option>
  <option value="1">Lolë Montreal</option>
  <option value="2">Spiritual Gangster</option>
  <option value="3">Havaianas</option>
</select>

しかし、最初のオプション (空のオプション) の値を '' ではなく 0 にしたいのですが、可能ですか? または、代わりに$suppliersコントローラーの配列を次のように変更する必要があります

$suppliers[0] = '';

FormHelper 入力から空のオプションを削除しますか?

4

4 に答える 4

14

詳細な配列構文を使用すると、空に任意の値を選択できます。

echo $this->Form->input('supplier_id', ['empty' => ['0' => '']]);

http://www.dereuromark.de/2010/06/23/working-with-forms/を参照してください。

于 2013-09-12T07:44:28.730 に答える
3
echo $this->Form->input('supplier_id', array('empty'=>'Select'));

それに必須を追加することもできます:

echo $this->Form->input('supplier_id', array('empty'=>'Select', 'required' => true));
于 2015-07-13T13:34:06.037 に答える
0

Cakephp 3.x では、これで問題が発生します...

のようになります

Select
0
   value1
   value2
   value3
   ...

だから私はそれを修正しました:

  • コントローラーで:

    ...データベースからデータを取得するもの

    $data_init = ['0'=>'選択'];

    $data = $data_init + $query->toArray();

    $this->set( '$list', $data);

  • ビューで:

    'オプション' => $list,

リストは次のようになります。

Select
value1
value2
value3
...
于 2016-06-27T16:22:20.773 に答える