cakePHP值为空选项

时间:2013-09-11 21:14:10

标签: php cakephp formhelper cakephp-2.4

有没有办法在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输入中删除空选项?

4 个答案:

答案 0 :(得分:12)

使用详细数组语法,您可以为空选择任何值:

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

请参阅http://www.dereuromark.de/2010/06/23/working-with-forms/

答案 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)

以上所有方法均适用,但是,如果您想通过validatemodel字段,那么您需要使用此

  <?= $this->Form->control('supplier_id', ['options' => $suppliers, 'empty' => '--Select--']) ?>