美文网首页
Laravel获取数据表字段注释的两种方式

Laravel获取数据表字段注释的两种方式

作者: Abbotton | 来源:发表于2018-06-06 21:26 被阅读0次

    前言

    最近的项目中有一个模块需要获取数据表中字段的注释,这样的需求相对来说比较冷门,所以网络上资源较少,经过这两天业余时间的资料收集,最终找到两种比较不错的方式来获取表字段注释。

    方式一

    通过Laravel执行下面的原生SQL来得到,这种方式是网上能找到的最普遍的方式,这条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);
    

    PS:这里还有另外一条更加简洁的SQL语句:

    SHOW FULL COLUMNS FROM `table-name`
    

    方式二

    通过doctrine/dbal包来实现,具体操作如下:

    首先,安装doctrine/dbal包:

    composer require doctrine/dbal
    

    接下来就简单多了,直接执行如下代码即可获得表字段注释。

    // 获取整张表的详细信息
    $columns = \DB::getDoctrineSchemaManager()->listTableDetails('table-name');
    // 获取年龄字段的注释
    $ageColumnComment = $columns->getColumn('age')->getComment();
    // 获取性别字段的注释
    $sexColumnComment = $columns->getColumn('sex')->getComment();
    ......
    

    这种方式相对第一种方式来说,性能稍微弱一点,但好在代码风格比较优雅,如果你比较看重代码风格,推荐使用第二种方式。

    相关文章

      网友评论

          本文标题:Laravel获取数据表字段注释的两种方式

          本文链接:https://www.haomeiwen.com/subject/hxmisftx.html