使用cakephp在DB中存储Dropdown值

时间:2012-02-14 18:24:54

标签: php mysql cakephp drop-down-menu

我有两张桌子:

  1. 联系人
  2. phonetypes
  3. 在我的添加操作中,我填充了phonetypes表(只有1列,即phone_type)的下拉框。

    我的contacts表格包含以下字段:l_namef_namephone_typenumber

    我将下拉列表的displayField设为phone_type。根据下拉列表中的选择,我尝试在phone_types表中插入contacts字段,但它会插入phonetypes表中的id。但我想插入值而不是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');
    

1 个答案:

答案 0 :(得分:1)

更好的问题是,如果您没有在电话类型表中使用主键的ID,为什么甚至使用数据库,为什么不使用静态数组呢?如果要使用数据库,则应该在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'));