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 相关文章推荐
PHP4实际应用经验篇(8)
Oct 09 PHP
关于时间计算的结总
Dec 06 PHP
php中使用Curl、socket、file_get_contents三种方法POST提交数据
Aug 12 PHP
getimagesize获取图片尺寸实例
Nov 15 PHP
Codeigniter购物车类不能添加中文的解决方法
Nov 29 PHP
php生成不重复随机数、数组的4种方法分享
Mar 30 PHP
php截取视频指定帧为图片
May 16 PHP
PHP中spl_autoload_register()函数用法实例详解
Jul 18 PHP
Laravel最佳分割路由文件(routes.php)的方式
Aug 04 PHP
php封装的验证码类分享
Feb 26 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
May 24 PHP
laravel按天、按小时,查询数据的实例
Oct 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
动画 《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
PHP file_get_contents 函数超时的几种解决方法
2009/07/30 PHP
PHP include任意文件或URL介绍
2014/04/29 PHP
javascript学习笔记(五)正则表达式
2011/04/08 Javascript
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
2013/05/19 Javascript
JS下载文件|无刷新下载文件示例代码
2014/04/17 Javascript
JS实现从顶部下拉显示的带动画QQ客服特效代码
2015/10/24 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
2015/10/27 Javascript
浅析AMD CMD CommonJS规范--javascript模块化加载学习心得总结
2016/03/16 Javascript
Javascript实现倒计时(防页面刷新)实例
2016/12/13 Javascript
微信小程序开发入门基础教程
2017/04/19 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
React如何避免重渲染
2018/04/10 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
2018/04/17 jQuery
iView框架问题整理小结
2018/10/16 Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
webpack打包优化的几个方法总结
2020/02/10 Javascript
在VUE style中使用data中的变量的方法
2020/06/19 Javascript
vue组件开发之tab切换组件使用详解
2020/08/21 Javascript
[00:09]DOTA2新版本PA至宝特效动作展示
2014/11/19 DOTA
[01:21:58]守擂赛DOTA2第一周决赛
2020/04/22 DOTA
Python实现的监测服务器硬盘使用率脚本分享
2014/11/07 Python
Python lambda和Python def区别分析
2014/11/30 Python
Python实现提取谷歌音乐搜索结果的方法
2015/07/10 Python
python3 实现的人人影视网站自动签到
2016/06/19 Python
PyTorch线性回归和逻辑回归实战示例
2018/05/22 Python
python实现抠图给证件照换背景源码
2019/08/20 Python
PyCharm导入python项目并配置虚拟环境的教程详解
2019/10/13 Python
解决django后台管理界面添加中文内容乱码问题
2019/11/15 Python
Python Pickle 实现在同一个文件中序列化多个对象
2019/12/30 Python
贷款担保申请书
2014/05/20 职场文书
外联部演讲稿
2014/05/24 职场文书
2015届本科毕业生自我鉴定
2014/09/27 职场文书
团党委领导干部党的群众路线教育实践活动个人对照检查材料思想汇
2014/10/05 职场文书