主页 > 知识库 > Laravel获取所有的数据库表及结构的方法

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

热门标签:团购网站 阿里云 电子围栏 服务器配置 Mysql连接数设置 Linux服务器 科大讯飞语音识别系统 银行业务

遇到一个需求,需要修改数据库中所有包含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获取所有的数据库表及结构的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
  • Laravel框架数据库CURD操作、连贯操作总结
  • Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
  • Laravel框架实现多数据库连接操作详解
  • Laravel如何同时连接多个数据库详解
  • laravel框架数据库配置及操作数据库示例
  • 浅谈laravel数据库查询返回的数据形式
  • Laravel创建数据库表结构的例子
  • laravel 操作数据库常用函数的返回值方法
  • Laravel5.5 数据库迁移:创建表与修改表示例
  • Laravel数据库读写分离配置的方法
  • Laravel框架DB facade数据库操作详解

标签:大理 广元 江苏 蚌埠 衡水 枣庄 萍乡 衢州

巨人网络通讯声明:本文标题《Laravel获取所有的数据库表及结构的方法》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266