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 相关文章推荐
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
Jun 08 PHP
PHP+JS+rsa数据加密传输实现代码
Mar 23 PHP
PHP数据库调用类调用实例(详细注释)
Jul 12 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
Jul 18 PHP
PHP查找与搜索数组元素方法总结
Jun 12 PHP
PHP中两个float(浮点数)比较实例分析
Sep 27 PHP
PHP给文字内容中的关键字进行套红处理
Apr 12 PHP
PHP7+Nginx的配置与安装教程详解
May 10 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
Sep 13 PHP
浅谈PHP错误类型及屏蔽方法
May 27 PHP
PHP十六进制颜色随机生成器功能示例
Jul 24 PHP
解决Laravel无法使用COOKIE和SESSION的问题
Oct 16 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
基于qmail的完整WEBMAIL解决方案安装详解
2006/10/09 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
PHP写API输出的时用echo的原因详解
2019/04/28 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
js 数值项目的格式化函数代码
2010/05/14 Javascript
jQuery.ajax 用户登录验证代码
2010/10/29 Javascript
xss文件页面内容读取(解决)
2010/11/28 Javascript
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
Bootstrap Table使用整理(五)之分页组合查询
2017/06/09 Javascript
解决ionic和angular上拉加载的问题
2017/08/03 Javascript
vue-resource拦截器设置头信息的实例
2017/10/27 Javascript
Angular5给组件本身的标签添加样式class的方法
2018/04/07 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
javascript/jquery实现点击触发事件的方法分析
2019/11/11 jQuery
jQuery与原生JavaScript选择HTML元素集合用法对比分析
2019/11/26 jQuery
vue使用nprogress实现进度条
2019/12/09 Javascript
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
使用Django启动命令行及执行脚本的方法
2018/05/29 Python
Python面向对象之类的定义与继承用法示例
2019/01/14 Python
Python插入Elasticsearch操作方法解析
2020/01/19 Python
Python3运算符常见用法分析
2020/02/14 Python
jupyter 导入csv文件方式
2020/04/21 Python
keras 获取某层的输入/输出 tensor 尺寸操作
2020/06/10 Python
Python调用jar包方法实现过程解析
2020/08/11 Python
html5指南-6.如何创建离线web应用程序实现离线访问
2013/01/07 HTML / CSS
来自圣地亚哥的实惠太阳镜:Knockaround
2018/08/27 全球购物
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
物业管理大学生个人的自我评价
2013/10/10 职场文书
股份合作协议书
2014/04/12 职场文书
合伙经营协议书范本(通用版)
2014/12/03 职场文书
向女朋友道歉的话
2015/01/20 职场文书
python playwright 自动等待和断言详解
2021/11/27 Python
Redis安装使用RedisJSON模块的方法
2022/03/23 Redis