Laravel获取所有的数据库表及结构的方法

 更新时间:2019年10月10日 17:00:13   作者:SHUIPING_YANG  
今天小编就为大家分享一篇Laravel获取所有的数据库表及结构的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

遇到一个需求,需要修改数据库中所有包含email的字段的表,要把里面的长度改为128位。Laravel获取所有的表,然后循环判断表里面有没有email这个字段。

代码如下:

use Illuminate\Support\Facades\Schema;
use DB;

public function getDatabaseColumns() {
 $tables = DB::select('show tables');
 $tables = array_column($tables, 'Tables_in_new_bcc_web');
 $columns = ['email', 'user_name', 'nick_name', 'first_name', 'last_name'];
 // dd(Schema::getConnection());
 foreach ($tables as $key => $value) {
  foreach ($columns as $k => $v) {
   if (Schema::hasColumn($value, $v)) {
    $table[] = $value;
   };
  }
  // $columns[] = Schema::getColumnListing('users');
 }
 $table = array_unique($table);
 dd($table);
}
Schema::getColumnListing('user');
Schema::hasColumn($table, $column_name)

这里记一笔,比知道有没有更好的方法一步获取到当前连接的数据库里面的所有的表,我是用原生的sql语句show tables查出所有表,然后取出Tables_in_new_bcc_web这一列,然后才得到所有的表名,然后再去循环。

找到一个更棒的方式:

public function getDatabaseColumns() {
 $tables = array_map('reset', \DB::select('SHOW TABLES'));
 $columns = ['email', 'user_name', 'nick_name', 'first_name', 'last_name'];
 foreach ($tables as $key => $value) {
  foreach ($columns as $k => $v) {
   if (Schema::hasColumn($value, $v)) {
    $table[] = $value;
   };
  }
 }
 $table = array_unique($table);
 dd($table);
}

以上这篇Laravel获取所有的数据库表及结构的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • PHP多态代码实例

    PHP多态代码实例

    这篇文章主要介绍了PHP多态代码实例,本文用2个代码实例来演示PHP中的多态,需要的朋友可以参考下
    2015-06-06
  • ThinkPHP中的常用查询语言汇总

    ThinkPHP中的常用查询语言汇总

    这篇文章主要介绍了ThinkPHP中的常用查询语言汇总,是ThinkPHP中常用的技巧,在项目开发中非常有实用价值,需要的朋友可以参考下
    2014-08-08
  • 图文详解如何在WordPress中嵌入iFrame

    图文详解如何在WordPress中嵌入iFrame

    在 WordPress 中可以使用不同的页面模板创建页面,下面这篇文章主要给大家介绍了关于如何在WordPress中嵌入iFrame的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • IIS服务器中部署PHP案例详解

    IIS服务器中部署PHP案例详解

    这篇文章主要介绍了IIS服务器中部署PHP案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • ThinkPHP无限级分类原理实现留言与回复功能实例

    ThinkPHP无限级分类原理实现留言与回复功能实例

    这篇文章主要介绍了ThinkPHP无限级分类原理实现留言与回复功能实例,并附带有完整的项目源码下载供大家学习参考,非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • laravel框架创建授权策略实例分析

    laravel框架创建授权策略实例分析

    这篇文章主要介绍了laravel框架创建授权策略,结合实例形式分析了laravel框架创建授权策略的相关步骤、实现方法与操作注意事项,需要的朋友可以参考下
    2019-11-11
  • php利用腾讯ip分享计划获取地理位置示例分享

    php利用腾讯ip分享计划获取地理位置示例分享

    这篇文章主要介绍了php利用腾讯ip分享计划获取地理位置示例,大家参考使用吧
    2014-01-01
  • Bootstrap+PHP实现多图上传功能实例详解

    Bootstrap+PHP实现多图上传功能实例详解

    这篇文章主要介绍了Bootstrap+PHP实现多图上传功能实例详解,本文图片加实例相结合的形式给大家介绍的非常详细,需要的朋友可以参考下
    2018-04-04
  • php远程请求CURL实例教程(爬虫、保存登录状态)

    php远程请求CURL实例教程(爬虫、保存登录状态)

    这篇文章主要给大家介绍了关于php远程请求CURL(爬虫、保存登录状态)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • php单链表实现代码分享

    php单链表实现代码分享

    这篇文章主要为大家分享了php单链表实现代码,代码简洁,感兴趣的小伙伴们可以参考一下
    2016-07-07

最新评论