CakePHP2.xのformにて、selectボックスのemptyオプションでvalueを指定したい場合どうすれば良いのか、メモ代わりに記述しておきます。
※公式のCakebook 2.xには記述が見当たらなかった(私の探し方が下手なだけの可能性もあり)ので。
■Cakebook2.xに掲載されている内容(を参考に私が書いたもの)
echo $this->Form->select('field', array(1 => 'Internet Explorer', 2 => 'Google Chrome', 3 => 'Firefox'), array('label'=>false, 'empty'=>'ウェブブラウザ'));
上記の様に記述した場合、出力されるHTMLは以下の様になります。
<select name="data[Xxx][field]" id="XxxField"> <option value="">ウェブブラウザ</option> <option value="1">Internet Explorer</option> <option value="2">Google Chrome</option> <option value="3">Firefox</option> </select>
これだと、ウェブブラウザの項目のvalueは空っぽです。
emptyオプションの指定を
'empty'=>'ウェブブラウザ'
と行うと、valueの値は空っぽになります。
例えばvalueの値を「0」にしたい場合は、以下の様にすれば良いようです。
■selectボックスのemptyオプションでvalueを指定する方法
echo $this->Form->select('field', array(1 => 'Internet Explorer', 2 => 'Google Chrome', 3 => 'Firefox'), array('label'=>false, 'empty'=>array(0 =>'ウェブブラウザ')));
上記の様に記述した場合、出力されるHTMLは以下の様になります。
<select name="data[Xxx][field]" id="XxxField"> <option value="0">ウェブブラウザ</option> <option value="1">Internet Explorer</option> <option value="2">Google Chrome</option> <option value="3">Firefox</option> </select>
ウェブブラウザの項目のvalueに「0」がセットされました。
emptyオプションの指定を
'empty'=>array(0 =>'ウェブブラウザ')
というように、連想配列で渡せば良いようです。
[参考]ここに、フォーム(select、checkbox、radioのオプションに関する記述あり。ただし、「valueが空っぽになる」方の記述法しか掲載されていないようです。)
Cakebook 2.x -> FormHelper -> Options for select, checkbox and radio inputs