我正在尝试在编辑记录时使用现有选择预先填充此状态选择框。 在一个相关的模型中。
PLAN_DETAILS / view.ctp
echo $this->Form->input('State',array('empty' => false,'options' => $state));
plan_details_controller查看功能:
$state = $this->PlanDetail->Plan->State->find('list');
$this->set(compact('state', $state));
debug($state);
view.ctp中的数组输出(按预期方式):
Array
(
[1] => Oregon
[2] => Washington
)
我的选择框在数组中默认为1。我需要它默认为已存在的选定值。
例如,当我添加一个记录和一个选定的华盛顿(2)时,在查看我的编辑屏幕时,预先选择的值应该是值为2的华盛顿。
我被困住了一段时间。知道我做错了吗?
答案 0 :(得分:0)
如果您正在编辑页面,则需要设置$ this->数据以自动填充它。在您的编辑操作中
if (empty($this->data)) {
$this->data = $this->PlanDetail->read(null, $id);
}
这应该在记录中读到(注意复数)
$states = $this->PlanDetail->Plan->State->find('list');
$this->set(compact('states'));
在您的表单中应该阅读
echo $this->Form->input('Plan.state_id',array('empty' => false));
我发现你的方法有点令人困惑,但上述方法应该有效。这个表格是用于编辑Plan,PlanDetail还是两者