我从项目中的各种表中获得一些列,并希望获得列名以外的一些其他信息,我也想获得列类型。
我正在使用Schema::getColumnListing()
方法,并将表传递给它,我能够获得字段,但不是类型?
我的代码返回一个表和列的列表,以及一个isChecked
状态,以供后面的阶段使用。
foreach ($tables as $table => $data) {
$cols = Schema::getColumnListing($table);
$colsWithFields = [];
foreach ($cols as $key => $column) {
array_push($colsWithFields, [
'field' => $column,
'type' => '', // somehow get type??
'isChecked' => false
]);
}
$tables[$table]['isChecked'] = false;
array_push($tables[$table]['columns'], $colsWithFields);
}
如果我使用getDoctrineColumn
,我确实看到有一个getType()
方法
您可以使用IlluminateSupportFacadesSchema
类中的getColumnType
,它以表名和列名作为输入
根据你的代码,它看起来像
array_push($colsWithFields, [
'field' => $column,
'type' => Schema::getColumnType($table,$column),
'isChecked' => false
]);