php - mysql 表中的枚举值

标签 php mysql laravel enums

我的表中有一个 enum 列,我试图在下拉列表中获取我在表中设置的值。因此,首先我编写了此查询来获取 column_typecolumn_name

"SELECT `COLUMN_NAME`,`DATA_TYPE`,`COLUMN_TYPE` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA`='devsbh' AND `TABLE_NAME`='modules' AND `COLUMN_NAME` NOT IN ('created_at', 'updated_at')"

然后我这样做是为了得到枚举值,如下所示

<?php 
   $regex = "/'(.*?)'/";
   preg_match_all( $regex , $modules->COLUMN_TYPE , $enum_array );
   $enum_fields = $enum_array[1];
?>

我的显示是这样的

PS:使用laravel的blade模板引擎。

{!! Form::select($modules->COLUMN_NAME,$enum_fields) !!}

到目前为止一切都是正确的。当我尝试存储它时,它也尝试保存为 Y => 0 和 N => 1。如何获得与枚举值相同的键 => 值?

根据控制台,$enum_fields 的值为 [0]=>Y 、 [1]=>N。

最佳答案

您可以使用array_combine方法使数组的键和值相同

<?php
     $regex = "/'(.*?)'/";
     preg_match_all( $regex , $modules->COLUMN_TYPE , $enum_array );
     $keyValueSame = array_combine($enum_array[1],$enum_array[1]);
 ?>

现在 $keyValueSame 数组的键和值将具有相同的值。

控制台中 $keyValueSame 的值为 [Y]=>Y , [N]=>N。

关于php - mysql 表中的枚举值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43441185/

相关文章:

jquery - 如何使用 jquery ajax 根据 laravel 中的数据库值 0 或 1 更改按钮类和 fontawesome 图标?

php - laravel 5.4 中两种不同的身份验证模型

php - 返回值必须是 ?Illuminate\\Database\\Query\\Builder, App\\Models\\ModelName 返回的类型

php - 在 foreach 中对 mysql-select 中的数组进行排序

php - mysql_real_escape_string() 只是创建一个空字符串?

php - 无效的表单 key 。请刷新页面。在 magento 管理员登录页面上

mysql - SQL 触发器 : Create row if row doesn't exist

mysql - Sequel pro 无法再连接

使用分区名称与 where 子句的 mysql 查询

php - 从过程函数到 OOP 类(一种特定情况)