有没有办法在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输入中删除空选项?
答案 0 :(得分:12)
使用详细数组语法,您可以为空选择任何值:
echo $this->Form->input('supplier_id', array('empty' => array(0 => '')));
答案 1 :(得分:2)
<a href="110.111.112.113/path/to/file/file.pdf">File</a>
您还可以向其添加必需:
echo $this->Form->input('supplier_id', array('empty'=>'Select'));
答案 2 :(得分:0)
在cakephp 3.x中你会遇到麻烦...
就像
Select
0
value1
value2
value3
...
所以我修理了它:
在控制器中:
......从数据库中获取数据的东西
$ data_init = [&#39; 0&#39; =&gt;&#39;选择&#39;];
$ data = $ data_init + $ query-&gt; toArray();
$ this-&gt; set(&#39; $ list&#39;,$ data);
在视图中:
&#39;选择&#39; =&GT; $列表
列表如下:
Select
value1
value2
value3
...
答案 3 :(得分:0)
以上所有方法均适用,但是,如果您想通过validate
来model
字段,那么您需要使用此
<?= $this->Form->control('supplier_id', ['options' => $suppliers, 'empty' => '--Select--']) ?>