背景
我有'医生'和'医院'表。它们通过'doctor_hospital'表链接(多对多)。
问题
在加入医生的同时,我想要多个复选框来选择医院。问题是我无法将医院'name'显示为选项,并将相应的'id'显示为数据库中的值。
我尝试了什么
代码
Controller.php这样
$hospitals = $this->Hcp->Hospitals->find('all', ['fields' => ['id', 'name']]);
add.ctp
<?php
foreach ($hospitals as $hospital) {
echo $this->Form->control('hospitals', ['type' => 'select',
'multiple' => 'checkbox',
$hospital->id => $hospital->name
]);
}
?>
我想要什么
选择框时,显示“名称”,但将相应的“id”提交回控制器。
答案 0 :(得分:0)
首先,打开您的HospitalsTable.php并检查您的displayField
是否设置为“name”属性(如果您将模型烘焙应该是这样)。
接下来,在您的控制器中,使用“list”finder:
$hospitals = $this->Hcp->Hospitals->find("list");
$this->set(compact("hospitals"));
最后,在您的模板文件中:
echo $this->Form->control("hospitals._ids", ["type" => "select", "multiple" => "checkbox"]);
它应该产生你想要的东西。
更多信息:CakePHP 3.x Forms
答案 1 :(得分:0)
您应该使用“ form->复选框”而不是“ form-> control”
&