2012-02-14 26 views
0

我有兩個表的數據庫存儲下拉值:使用CakePHP

  1. 接觸
  2. phonetypes

在我的附加動作,我填充從phonetypes表下拉框(其中有隻1列,即phone_type)。

我的contacts表中的字段包括:l_namef_namephone_typenumber

我有下拉的displayField爲phone_type。根據下拉列表中的選擇,我嘗試在contacts表中插入phone_types字段,但它會插入phonetypes表中的ID。但我想插入的值,而不是編號...

任何幫助表示讚賞。

我的視圖代碼:

echo $this->Form->create('Contact'); 
echo $this->Form->input('last_name', array('type'=>'text', 'size'=>10)); 
echo $this->Form->input('first_name'); 
echo $this->Form->select('phonetypes.phone_type',array('phone_type'=>'phone_type','options'=>$phone_type,'default'=>'phone_type')); 
echo $this->Form->input('phone_number'); 
echo $this->Form->end('Save Entry'); 
+0

這將有助於查看您正在使用的一些代碼。嘗試發佈你的模型和你所指的添加動作。 – Oldskool 2012-02-14 22:00:39

+0

請在您的視圖中添加代碼,其中是phonetype列表,問題可能在那裏。 – 2012-02-14 22:14:10

+0

我已經包含了我的視圖代碼。希望這有助於解決我的簡單問題 – Pradeep 2012-02-15 01:33:12

回答

1

更好的問題是,如果你不使用手機中的類型表的主鍵的ID,爲什麼還要使用數據庫,爲什麼不直接使用一個靜態數組?如果你想使用數據庫,你應該添加ID列並將ID存儲在引用電話類型的聯繫人表中。然後讓你會做以下的下降數據:

$this->set('phone_types', $this->PhoneType->find('list)); 

然後在視圖,表單字段將看起來像:

echo $this->Form->input('phone_type', array('options'=> $phone_types)); 

如果你不想使用該ID在該表,那麼只需消除表格並設置一個靜態數組:

$this->set('phone_types', array('Home' => 'Home', 'Cell' => 'Cell', 'Work' => 'Work'));