Php mysql表中的枚举值
我的表中有一个enum列,我正在尝试从下拉列表中获取我在表中设置的值。首先,我编写了这个查询来获取列类型和列名称 然后我这样做是为了得到枚举值,如下所示Php mysql表中的枚举值,php,mysql,laravel,enums,Php,Mysql,Laravel,Enums,我的表中有一个enum列,我正在尝试从下拉列表中获取我在表中设置的值。首先,我编写了这个查询来获取列类型和列名称 然后我这样做是为了得到枚举值,如下所示 <?php $regex = "/'(.*?)'/"; preg_match_all( $regex , $modules->COLUMN_TYPE , $enum_array ); $enum_fields = $enum_array[1]; ?> 在这之前一切都是正确的。当我尝试存储时,它也尝试将Y=
<?php
$regex = "/'(.*?)'/";
preg_match_all( $regex , $modules->COLUMN_TYPE , $enum_array );
$enum_fields = $enum_array[1];
?>
在这之前一切都是正确的。当我尝试存储时,它也尝试将Y=>0和N=>1另存为。如何获得与枚举值相同的key=>值
控制台中$enum_字段的值为[0]=>Y,[1]=>N.您最好将枚举硬编码到代码库中 假设您使用的是MySQL,枚举背后的想法实际上是将列中的值限制在特定的集合中-基本上说,如果值不是这些字符串中的一个,则不允许它 枚举并不是为了经常更改而设计的——事实上,如果您尝试更改它们,您可能会发现问题——更改它们可能需要一些数据库技巧,特别是如果您有大量记录的话 如果查找数据将更改,并且需要将其存储在数据库中,请将该列作为包含查找字段的另一个表的外键 如果您一直在使用枚举,只需在下拉列表中对列表进行硬编码。您可以使用array\u 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
{!! Form::select($modules->COLUMN_NAME,$enum_fields) !!}
<?php
$regex = "/'(.*?)'/";
preg_match_all( $regex , $modules->COLUMN_TYPE , $enum_array );
$keyValueSame = array_combine($enum_array[1],$enum_array[1]);
?>