tutorial - create new cakephp project
valor de CakePHP para la opción vacía (3)
¿Hay alguna manera de pasar un valor para la opción vacía en un menú desplegable de selección generado por el FormHelper?
Estoy creando una entrada como esta:
echo $this->Form->input(''supplier_id'', array(''empty''=>true));
con valores suministrados automáticamente desde el controlador como este
$suppliers = $this->Product->Supplier->find(''list'');
$this->set(compact(''suppliers''));
y el cuadro de selección se crea así:
<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>
pero me gustaría que la primera opción (la vacía) tenga un valor de 0 en lugar de '''' ¿es posible? o debería en su lugar modificar la matriz de $suppliers
en el controlador con algo así como
$suppliers[0] = '''';
y eliminar la opción vacía de la entrada FormHelper?
En cakephp 3.x obtendrás problemas con esto ...
Será como
Select
0
value1
value2
value3
...
Así que lo arreglé por:
En el controlador:
... algo para obtener datos de la base de datos
$ data_init = [''0'' => ''Seleccionar''];
$ data = $ data_init + $ query-> toArray ();
$ this-> set (''$ list'', $ data);
En vista:
''opciones'' => $ lista,
Y la lista será como:
Select
value1
value2
value3
...
Usando la sintaxis de matriz verbosa puede elegir cualquier valor para empty:
echo $this->Form->input(''supplier_id'', array(''empty'' => array(0 => '''')));
Ver http://www.dereuromark.de/2010/06/23/working-with-forms/
echo $this->Form->input(''supplier_id'', array(''empty''=>''Select''));
También puede agregar requerido :
echo $this->Form->input(''supplier_id'', array(''empty''=>''Select'', ''required'' => true));