从Laravel 8的schema中获取列类型



我从项目中的各种表中获得一些列,并希望获得列名以外的一些其他信息,我也想获得列类型。

我正在使用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
]);

最新更新