我的表中有一个 enum
列,我试图在下拉列表中获取我在表中设置的值。因此,首先我编写了此查询来获取 column_type
和 column_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/