FormHelper - 预先填充的选择下拉菜单 - CakePHP

时间:2012-09-28 13:22:58

标签: cakephp formhelper

如果我有:

// 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

℃。上述方法是预先填充已经具有值的选择框的最有效方法吗?

1 个答案:

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