使用cakephp在DB中存储下拉值

使用cakephp在DB中存储下拉值,php,mysql,cakephp,drop-down-menu,Php,Mysql,Cakephp,Drop Down Menu,我有两张桌子: 接触 电话类型 在我的添加操作中,我从电话类型表中填充了一个下拉框(该表只有一列,即电话类型) Mycontacts表中有以下字段:l\u name、f\u name、phone\u type和number 我将下拉列表的显示字段设置为phone\u type。根据下拉列表中的选择,我尝试在联系人表中插入电话类型字段,但它会插入电话类型表中的id。但我想插入值而不是id 感谢您的帮助 我的视图代码: echo $this->Form->create('Cont

我有两张桌子:

  • 接触
  • 电话类型
  • 在我的添加操作中,我从
    电话类型
    表中填充了一个下拉框(该表只有一列,即
    电话类型

    My
    contacts
    表中有以下字段:
    l\u name
    f\u name
    phone\u type
    number

    我将下拉列表的显示字段设置为
    phone\u type
    。根据下拉列表中的选择,我尝试在
    联系人
    表中插入
    电话类型
    字段,但它会插入
    电话类型
    表中的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');
    

    更好的问题是,如果在phone types表中不使用主键ID,为什么还要使用数据库,为什么不使用静态数组?如果要使用数据库,则应添加ID列,并将ID存储在引用电话类型的contacts表中。然后,要获取放置数据,请执行以下操作:

    $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'));
    

    查看您正在使用的一些代码会有所帮助。尝试发布您的模型和您所指的添加操作。请在您的视图中添加代码,其中是电话类型列表,可能存在问题。我已包含我的视图代码。希望这有助于解决我的简单问题