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中Session的概念
Oct 09 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
Oct 06 PHP
解析Win7 XAMPP apache无法启动的问题
Jun 26 PHP
CodeIgniter生成网站sitemap地图的方法
Nov 13 PHP
php修改文件上传限制方法汇总
Apr 07 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
Nov 04 PHP
php实现文件管理与基础功能操作
Mar 21 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
PHP面向对象五大原则之开放-封闭原则(OCP)详解
Apr 04 PHP
PHP设计模式之原型设计模式原理与用法分析
Apr 25 PHP
PHP实现的抓取小说网站内容功能示例
Jun 27 PHP
PHP大文件分块上传功能实例详解
Jul 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
解析CI的AJAX分页 另类实现方法
2013/06/27 PHP
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
2014/07/22 PHP
PHP实现简单汉字验证码
2015/07/28 PHP
用javascript实现给出的盒子的序列是否可连为一矩型
2007/08/30 Javascript
使用dynatrace-ajax跟踪JavaScript的性能
2010/04/12 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
javascript模拟实现C# String.format函数功能代码
2013/11/25 Javascript
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
2014/08/14 Javascript
javascritp添加url参数将参数加入到url中
2014/09/25 Javascript
推荐5 个常用的JavaScript调试技巧
2015/01/08 Javascript
PHP守护进程实例
2015/03/06 Javascript
JS实现网页表格自动变大缩小的方法
2015/03/09 Javascript
JQ实现新浪游戏首页幻灯片
2015/07/29 Javascript
Javascript获取统一管理的提示语(message)
2016/02/03 Javascript
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
JavaScript中的Array 对象(数组对象)
2016/06/02 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
2016/09/04 Javascript
微信小程序 开发指南详解
2016/09/27 Javascript
基于bootstrap写的一点localStorage本地储存
2017/11/21 Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
2018/04/04 Javascript
Javascript实现动态时钟效果
2018/11/17 Javascript
简单分析js中的this的原理
2019/08/31 Javascript
详解三种方式在React中解决绑定this的作用域问题并传参
2020/08/18 Javascript
python:socket传输大文件示例
2017/01/18 Python
Python内置模块ConfigParser实现配置读写功能的方法
2018/02/12 Python
Python3 Post登录并且保存cookie登录其他页面的方法
2018/12/28 Python
python如何实现word批量转HTML
2020/09/30 Python
canvas实现有递增动画的环形进度条的实现方法
2019/07/10 HTML / CSS
美国波道夫·古德曼百货官网:Bergdorf Goodman
2017/11/07 全球购物
简单的辞职信范文
2014/01/18 职场文书
教师绩效考核方案
2014/01/21 职场文书
三年级班级文化建设方案
2014/05/04 职场文书
JS class语法糖的深入剖析
2022/07/07 Javascript
windows server2012 R2下安装PaddleOCR服务的的详细步骤
2022/09/23 Servers