2013-09-11 3 views
6

Есть ли способ передать значение для пустой опции в выпадающем списке выбора, сгенерированном FormHelper?Значение cakePHP для пустого варианта

Я создаю вход так:

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> 

но я бы хотел, чтобы первый opti на (пустой), чтобы иметь значение 0 вместо '', возможно ли это? или я должен вместо этого изменить $suppliers массив в контроллере с чем-то вроде

$suppliers[0] = ''; 

и удалить пустую опцию из входного FormHelper?

+0

так почему бы не просто ввести ** 0 * *? –

+0

@ Дагон Где бы я его напечатал? –

+1

Передайте его для значения параметра 'empty', т.е. вместо' true'. http://book.cakephp.org/2.0/ru/core-libraries/helpers/form.html#options-for-select-checkbox-and-radio-inputs – ndm

ответ

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

Вы также можете добавить требуется к нему:

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

В cakephp 3.x вы получите проблемы с thi s ...

Это будет как

Select 
0 
    value1 
    value2 
    value3 
    ... 

Так я установил его:

  • В контроллере:

    ... что-то, чтобы получить данные из базы данных

    $ data_init = ['0' => 'Select'];

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

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

  • Ввиду:

    'опции' => $ списка

И этот список будет как:

Select 
value1 
value2 
value3 
... 
Смежные вопросы