如果我有:
// Controller
$this->Model->id = $id;
$this->request->data['Model'] = $this->Model->read();
然后:
// View (input field)
$this->Form->input('some_field'); // THE FORM FIELD WILL BE PRE-POPULATED
但如果我想让它成为一个选择框:
// View (with select)
$this->Form->select('some_field', $options); // THE SELECT BOX ISN'T PRE-POPULATED
然后问题:
一个。为什么选择框不像输入字段那样预先填充?
湾我真的必须像这样手动预先填充吗?
// View (with select)
$this->Form->select('some_field', $options, array('value' => $this->request->data['Model']['some_field'])); // THE SELECT BOX IS PRE-POPULATED
℃。上述方法是预先填充已经具有值的选择框的最有效方法吗?
答案 0 :(得分:0)
不,如果您正确执行,some_field将通过您传递的表单数据进行预先填充。 你调试了你在那里制作的东西吗?一个不是蛋糕标准的多级数组。
正确的方法是:
$this->request->data = $this->Model->read();
因为数组已经包含Model键(debug()会显示!)。 但只有在没有张贴的情况下才小心这样做!
到你的上一个问题,如果可能,请使用控制器或至少default
。如果验证失败,value
会使您的表单丢失之前选择的值。
我的旧蛋糕1.3帖子也可能对它有所启发:http://www.dereuromark.de/2010/06/23/working-with-forms/