2017-08-16 47 views
0

背景從CakePHP的數據庫

我顯示覆選框選項和相應的值有「醫生」和「醫院」表。他們通過'doctor_hospital'表連接(多對多)。

問題

雖然增加醫生我要多的複選框來選擇醫院。問題是我無法顯示醫院'名稱'作爲選項和相應的'id'作爲數據庫中的值。

我已經試過

我能做的最好的(而不是得到任何錯誤)是這樣的: enter image description here

代碼

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 
              ]); 
      } 
     ?>  

我想要什麼選擇框,顯示「姓名」,但提交相應的「身份證」回到控制器時

+0

嘗試使用複選框值屬性....像 '值'=> $醫院 - > ID – Shashikala

+0

沒有工作。它會拋出一個錯誤,說「foreach循環的無效參數」(類似的那樣) –

回答

0

首先,打開你的HospitalsTable.php並檢查你的displayField是否設置爲「name」屬性(如果你烘烤了你的模型,它應該是)。

接下來,在你的控制器上,使用 「列表」 發現者:

$hospitals = $this->Hcp->Hospitals->find("list"); 
$this->set(compact("hospitals")); 

最後,在你的模板文件:

echo $this->Form->control("hospitals._ids", ["type" => "select", "multiple" => "checkbox"]); 

應該生成你想要什麼。

更多信息:CakePHP 3.x Forms

+0

沒有工作。仍然顯示相同的事情。 Displayfield是'名稱'。 –

+0

這是正確的方式,它應該產生預期的結果。我建議你檢查裸骨的例子,可以在教程中找到:https://book.cakephp.org/3.0/en/tutorials-and-examples/bookmarks/intro.html – Szymon

+0

糟糕!抱歉。它確實有效。我的錯。 –