最近,项目中有一个模块,需要根据不同的模型,动态获取数据表的字段与注释组成的关联数组,经过实践,总结出两种方法。
方法一
通过执行如下原生SQL获得,这种方式是网上能找到的最普遍的方式。
$sql = "SELECT COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'db-name' AND TABLE_NAME = 'table-name' AND COLUMN_NAME = 'column-name'";
$result = \DB::select($sql);
上面的SQL语句还有另一种更简洁的写法:
SHOW FULL COLUMNS FROM `table-name`;
方法二
通过doctrine/dbal
包来实现