php - 使用 cakephp 将下拉值存储在数据库中

标签 php mysql cakephp drop-down-menu

我有两个表:

  1. 联系人
  2. 电话类型

在我的添加操作中,我从 phonetypes 表(只有 1 列,即 phone_type)填充一个下拉框。

我的联系人表包含字段:l_namef_namephone_typenumber.

我将下拉列表的 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/

相关文章:

c# - 对象不能从 DBNull 转换为其他类型? C#

mysql - 我的 MySQL CASE/WHEN 语法有什么问题?

cakephp - 如何从Cake Shell中读取数据库配置设置?

php - CakePHP 显示空白页

php - 如何以编程方式确定 PHP 中的文档根目录?

php - 验证 MySQL 查询中的日期范围

php - 从包中找出 Laravel 5 应用程序命名空间

php - 如果我将所有数据库查询放在一个文件中可以吗?

MySQL - 使用不存在的地方返回 null

php - cakephp:如何在default.ctp中添加下拉列表?