CakePHP表单字段自动填充'1'问题求助
问题描述
我视图中有如下关联数组:
$fields = ['field1' => '1', 'field2' => '0', 'field3' => '1'];
该数组来自另一页面的复选框列表,'1'表示字段被选中(需要显示),'0'表示未被选中(不应显示)。
我通过以下代码利用该数组创建表单:
foreach ($fields as $key => $value) { if ($value == 1) { echo $this->Form->control($key, ['class' => 'form-control w-80 mb-3 ml-3', 'label' => ['class' => 'ml-3', 'text' => $key], 'type' => 'text']); } }
现在表单字段会自动填充'1',我希望这些字段显示为空,恳请各位提供解决方案。
解决方案
在调用Form->control()方法时,显式添加'value' => ''参数,强制覆盖默认填充的值:
foreach ($fields as $key => $value) { if ($value == 1) { echo $this->Form->control($key, [ 'class' => 'form-control w-80 mb-3 ml-3', 'label' => ['class' => 'ml-3', 'text' => $key], 'type' => 'text', 'value' => '' // 强制设置字段为空 ]); } }
原理是CakePHP的FormHelper会自动从当前请求数据或绑定的实体中读取字段值并填充,这里显式指定value为空后,会覆盖掉默认的填充逻辑,让输入框显示为空。
内容的提问来源于stack exchange,提问作者Shivoham Angal
相关产品推荐
相关产品推荐

