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 水平的题目
May 30 PHP
台湾中原大学php教程孙仲岳主讲
Jan 07 PHP
PHP 读取文件的正确方法
Apr 29 PHP
PHP 变量定义和变量替换的方法
Jul 30 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
May 07 PHP
php中使用redis队列操作实例代码
Feb 07 PHP
基于PHP服务端图片生成缩略图的方法详解
Jun 20 PHP
php常用字符串处理函数实例分析
Nov 22 PHP
PHP中实现crontab代码分享
Mar 26 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
Apr 07 PHP
php批量删除超链接的实现方法
Oct 19 PHP
PHP编程计算文件或数组中单词出现频率的方法
May 22 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
jQuery ajax dataType值为text json探索分享
2013/09/23 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
2014/04/29 Javascript
javascript实现修改微信分享的标题内容等
2014/12/11 Javascript
高性能JavaScript 重排与重绘(2)
2015/08/11 Javascript
JavaScript仿百度图片浏览效果
2016/11/23 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
vue中将网页打印成pdf实例代码
2017/06/15 Javascript
详解webpack异步加载业务模块
2017/06/23 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
使用 Javascript 实现浏览器推送提醒功能的示例
2017/11/03 Javascript
初探js和简单隐藏效果的实例
2017/11/23 Javascript
vue+springboot实现项目的CORS跨域请求
2018/09/05 Javascript
理顺8个版本vue的区别(小结)
2018/09/17 Javascript
js+html实现点名系统功能
2019/11/05 Javascript
利用JS如何获取form表单数据
2019/12/19 Javascript
Object.keys() 和 Object.getOwnPropertyNames() 的区别详解
2020/05/21 Javascript
Python笔记(叁)继续学习
2012/10/24 Python
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
2016/04/12 Python
Python 实现网页自动截图的示例讲解
2018/05/17 Python
Python实现的各种常见分布算法示例
2018/12/13 Python
详解python如何引用包package
2020/06/07 Python
CSS3 简写animation
2012/05/10 HTML / CSS
西班牙国家航空官方网站:Iberia
2017/11/16 全球购物
世界上第一个水枕头:Mediflow
2018/12/06 全球购物
德国家具、照明、家居用品网上商店:Wayfair.de
2020/02/13 全球购物
创业女性典型材料
2014/05/02 职场文书
超市七夕促销活动方案
2014/08/28 职场文书
2014年“世界无车日”活动方案
2014/09/21 职场文书
事业单位工作人员年度考核个人总结
2015/02/12 职场文书
2014年个人年终总结
2015/03/09 职场文书
导游词之杭州西湖
2019/09/19 职场文书
OpenCV中resize函数插值算法的实现过程(五种)
2021/06/05 Python
Spring Data JPA使用JPQL与原生SQL进行查询的操作
2021/06/15 Java/Android
vue css 相对路径导入问题级踩坑记录
2022/06/05 Vue.js