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中利用XML技术构造远程服务(上)
Oct 09 PHP
PHP页面间传递参数实例代码
Jun 05 PHP
火车采集器 免费版使出收费版本功能实现原理
Sep 17 PHP
允许phpmyadmin空密码登录的配置方法
May 29 PHP
通过PHP的内置函数,通过DES算法对数据加密和解密
Jun 21 PHP
探讨如何把session存入数据库
Jun 07 PHP
浅析关于PHP位运算的简单权限设计
Jun 30 PHP
采用thinkphp自带方法生成静态html文件详解
Jun 13 PHP
PHP实现的英文名字全拼随机排号脚本
Jul 04 PHP
php将图片文件转换成二进制输出的方法
Jun 10 PHP
基于PHP实现短信验证码发送次数限制
Jul 11 PHP
thinkphp5 路由分发原理
Mar 18 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
同时提取多条新闻中的文本一例
2006/10/09 PHP
解析thinkphp的左右值无限分类
2013/06/20 PHP
php传值赋值和传地址赋值用法实例分析
2015/06/20 PHP
javascript引用对象的方法
2007/01/11 Javascript
Jquery css函数用法(判断标签是否拥有某属性)
2011/05/28 Javascript
鼠标滑在标题上显示图片的JS代码
2013/11/19 Javascript
jquery zTree异步加载、模糊搜索简单实例分享
2016/03/24 Javascript
JavaScript基本语法_动力节点Java学院整理
2017/06/26 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
微信小程序实用代码段(收藏版)
2019/12/17 Javascript
前端使用crypto.js进行加密的函数代码
2020/08/16 Javascript
nodejs+express最简易的连接数据库的方法
2020/12/23 NodeJs
python通过邮件服务器端口发送邮件的方法
2015/04/30 Python
pycharm安装和首次使用教程
2018/08/27 Python
python中count函数简单的实例讲解
2020/02/06 Python
Windows下实现将Pascal VOC转化为TFRecords
2020/02/17 Python
Django中从mysql数据库中获取数据传到echarts方式
2020/04/07 Python
Django实现前台上传并显示图片功能
2020/05/29 Python
python中什么是面向对象
2020/06/11 Python
pandas apply多线程实现代码
2020/08/17 Python
CSS3用@font-face实现自定义英文字体
2013/09/23 HTML / CSS
Big Green Smile德国网上商店:提供各种天然产品
2018/05/23 全球购物
英国第一摩托车和摩托车越野配件商店:GhostBikes
2019/03/10 全球购物
.NET笔试题(20个问题)
2016/02/02 面试题
what is the difference between ext2 and ext3
2015/08/25 面试题
测绘工程个人的自我评价
2013/11/23 职场文书
秋季红领巾广播稿
2014/01/27 职场文书
一份创业计划书范文
2014/02/08 职场文书
静心口服夜广告词
2014/03/20 职场文书
毕业生应聘求职信
2014/07/10 职场文书
群教个人对照检查材料
2014/08/20 职场文书
2014年个人债务授权委托书范本
2014/09/22 职场文书
2014年居委会工作总结
2014/12/09 职场文书
迟到检讨书
2015/01/26 职场文书
学生会主席任命书
2015/09/21 职场文书
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
2022/04/07 Servers