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


Posted in PHP onOctober 10, 2019

遇到一个需求,需要修改数据库中所有包含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常用代码大全(新手入门必备)
Jun 29 PHP
PHP在特殊字符前加斜杠的实现代码
Jul 17 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
Nov 10 PHP
windows下zendframework项目环境搭建(通过命令行配置)
Dec 06 PHP
一个完整的php文件上传类实例讲解
Oct 27 PHP
PHP数组相加操作及与array_merge的区别浅析
Nov 26 PHP
PHP封装的PDO数据库操作类实例
Jun 21 PHP
PHP实现的文件上传类与用法详解
Jul 05 PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 PHP
mysqli扩展无法在PHP7下升级问题的解决
Sep 10 PHP
tp5 sum某个字段相加得到总数的例子
Oct 18 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
Mar 09 PHP
Laravel 数据库加密及数据库表前缀配置方法
Oct 10 #PHP
如何解决PHP获取不到SESSION信息之一般情况
Oct 10 #PHP
php获取微信openid方法总结
Oct 10 #PHP
phpinfo的知识点总结
Oct 10 #PHP
phpfpm的作用和用法
Oct 10 #PHP
在laravel中实现事务回滚的方法
Oct 10 #PHP
laravel Model 执行事务的实现
Oct 10 #PHP
You might like
PHP 5.3.0 安装分析心得
2009/08/07 PHP
php下将XML转换为数组
2010/01/01 PHP
php的POSIX 函数以及进程测试的深入分析
2013/06/03 PHP
php获取访问者浏览页面的浏览器类型
2017/01/23 PHP
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
在JS数组特定索引处指定位置插入元素
2014/07/27 Javascript
简介JavaScript中的italics()方法的使用
2015/06/08 Javascript
domReady的实现案例
2016/11/23 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
2017/06/13 Javascript
VueJS组件之间通过props交互及验证的方式
2017/09/04 Javascript
解决Vue编译时写在style中的路径问题
2017/09/21 Javascript
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
JS如何监听div的resize事件详解
2020/12/03 Javascript
[16:14]教你分分钟做大人:米拉娜(HEROS)
2014/11/24 DOTA
[04:11]DOTA2上海特级锦标赛主赛事首日TOP10
2016/03/03 DOTA
[32:30]夜魇凡尔赛茶话会 第一期01:谁是卧底
2021/03/11 DOTA
Python中类的定义、继承及使用对象实例详解
2015/04/30 Python
Python回调函数用法实例详解
2015/07/02 Python
python机器学习之神经网络(二)
2017/12/20 Python
PyQt5每天必学之切换按钮
2020/08/20 Python
对Python中for复合语句的使用示例讲解
2018/11/01 Python
如何用Python制作微信好友个性签名词云图
2019/06/28 Python
windows上安装python3教程以及环境变量配置详解
2019/07/18 Python
Python pandas RFM模型应用实例详解
2019/11/20 Python
如何通过python实现全排列
2020/02/11 Python
Python监听剪切板实现方法代码实例
2020/11/11 Python
美国家居装饰店:Pier 1
2019/09/04 全球购物
2015年个人思想总结
2015/03/09 职场文书
金陵十三钗观后感
2015/06/04 职场文书
婚庆主持词大全
2015/06/30 职场文书
2016教师国培研修感言
2015/12/08 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书
《草船借箭》教学反思
2016/02/23 职场文书
浅谈怎么给Python添加类型标注
2021/06/08 Python
Win10/Win11 任务栏替换成经典样式
2022/04/19 数码科技
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android