$this->request->data
我正在使用 Cake 的表单助手,当我在控制器中设置某些内容时,它应该预先填充。type="text"
它是为普通输入框预填充的,但不是为 type="select" 填充的。有谁知道为什么?
如果pr($this->request->data)
我认为我会得到这个结果:
Array
(
[EventInvoiceHardsurface] => Array
(
[id] => 7868
[expediting_notes] => Fake expiditing notes
[installation_notes] => Fake installation notes.
)
[PurchasingProduct] => Array
(
[style_number] => BDP
[style_name] => DUNDEE PLANK 3 1/4
)
[PurchasingProductColor] => Array
(
[name] => CB1230 SEASHELL
)
)
这不会预先填充
<?=$this->Form->input('PurchasingProductColor.name', array('type' => 'select', 'label' => 'Product Color', 'div' => false, 'placeholder' => 'Color Name', 'class' => 'input-medium', 'disabled' => 'disabled', 'empty' => true));?>
但这确实
<?=$this->Form->input('PurchasingProductColor.name', array('type' => 'text', 'label' => 'Product Color', 'div' => false, 'placeholder' => 'Color Name', 'class' => 'input-medium', 'disabled' => 'disabled', 'empty' => true));?>
我已经尝试删除 'empty' => true 并删除占位符并删除禁用的,但这些都没有影响。
有什么想法吗?谢谢。
编辑:
我刚结束使用这个。
<?=$this->Form->input('PurchasingProductColor.name', array('type' => 'select', 'label' => 'Product Color', 'div' => false, 'placeholder' => 'Color Name', 'class' => 'input-medium', 'options' => array((!empty($this->request->data['PurchasingProductColor']['id']) ? $this->request->data['PurchasingProductColor']['id'] : '') => (!empty($this->request->data['PurchasingProductColor']['name']) ? $this->request->data['PurchasingProductColor']['name'] : ''))));?>
我失去了 empty => true 功能和禁用的功能,但我将通过 JavaScript 控制它们。
谢谢。