我有两个表:
- 联系人
- 电话类型
在我的添加操作中,我从 phonetypes
表(只有 1 列,即 phone_type
)填充一个下拉框。
我的联系人
表包含字段:l_name
、f_name
、phone_type
和number
.
我将下拉列表的 displayField 设置为 phone_type
。根据下拉列表中的选择,我尝试在 contacts
表中插入 phone_types
字段,但它会插入 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');
最佳答案
更好的问题是,如果您没有使用电话类型表中的主键 ID,为什么还要使用数据库,为什么不只使用静态数组呢?如果要使用数据库,则应添加 ID 列并将 ID 存储在引用电话类型的联系人表中。然后要获取掉落数据,您需要执行以下操作:
$this->set('phone_types', $this->PhoneType->find('list));
然后在 View 中,表单字段将如下所示:
echo $this->Form->input('phone_type', array('options'=> $phone_types));
如果您不想使用表中的 ID,则只需删除该表并设置静态数组即可:
$this->set('phone_types', array('Home' => 'Home', 'Cell' => 'Cell', 'Work' => 'Work'));
关于php - 使用 cakephp 将下拉值存储在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9282169/