cakePHP value for empty option

Devin Crossman picture Devin Crossman · Sep 11, 2013 · Viewed 20.1k times · Source

is there a way to pass a value for the empty option in a select dropdown generated by the FormHelper?

I'm creating an input like this:

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

with values supplied automatically from the controller like this

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

and the select box is created like this:

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

but I would like the first option (the empty one) to have a value of 0 instead of '' is it possible? or should I instead modify the $suppliers array in the controller with something like

$suppliers[0] = '';

and remove the empty option from the FormHelper input?

Answer

mark picture mark · Sep 12, 2013

Using the verbose array syntax you can chose any value for empty:

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

See http://www.dereuromark.de/2010/06/23/working-with-forms/