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和MySQL保存和输出图片
Oct 09 PHP
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
Dec 02 PHP
用PHP书写安全的脚本代码
Feb 05 PHP
PHP中的正则表达式函数介绍
Feb 27 PHP
基于PHP创建Cookie数组的详解
Jul 03 PHP
php实现window平台的checkdnsrr函数
May 27 PHP
PHP和MySql中32位和64位的整形范围是多少
Feb 18 PHP
PHP转换文本框内容为HTML格式的方法
Jul 20 PHP
Zend Framework路由器用法实例详解
Dec 11 PHP
php中通过eval实现字符串格式的计算公式
Mar 18 PHP
php微信公众号开发之图片回复
Oct 20 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
Apr 20 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
PHP中for循环语句的几种变型
2006/11/26 PHP
PHP遍历数组的三种方法及效率对比分析
2015/02/12 PHP
文件上传之SWFUpload插件(代码)
2015/07/30 PHP
php结合md5实现的加密解密方法
2016/01/25 PHP
PHP面向对象程序设计实例分析
2016/01/26 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
关于Javascript 的 prototype问题。
2007/01/03 Javascript
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
js判断是否为数组的函数: isArray()
2011/10/30 Javascript
在js中判断checkboxlist(.net控件客户端id)是否有选中
2013/04/11 Javascript
jQuery实现强制cookie过期方法汇总
2015/05/22 Javascript
JavaScript获取表格(table)当前行的值、删除行、增加行
2015/07/03 Javascript
使用JS正则表达式 替换括号,尖括号等
2016/11/29 Javascript
jQuery动态增减行的实例代码解析(推荐)
2016/12/05 Javascript
利用vue实现模态框组件
2016/12/19 Javascript
mongoose设置unique不生效问题的解决及如何移除unique的限制
2017/11/07 Javascript
JS用最简单的方法实现四舍五入
2019/08/27 Javascript
寻找网站后台地址的python脚本
2014/09/01 Python
python连接oracle数据库实例
2014/10/17 Python
python timestamp和datetime之间转换详解
2017/12/11 Python
flask中使用蓝图将路由分开写在不同文件实例解析
2018/01/19 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
python文件选择对话框的操作方法
2019/06/27 Python
python requests指定出口ip的例子
2019/07/25 Python
python Django 创建应用过程图示详解
2019/07/29 Python
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
韩国流行时尚女装网站:Dintchina(中文)
2018/07/19 全球购物
奥地利购买珠宝和手表网站:ELLA JUWELEN
2019/09/03 全球购物
Ajax请求总共有多少种Callback
2016/07/17 面试题
学前教育毕业生自荐信范文
2013/12/24 职场文书
合作意向书模板
2014/03/31 职场文书
党员自我评价2015
2015/03/03 职场文书
实习报告怎么写
2019/06/20 职场文书
MySQL 数据丢失排查案例
2021/05/08 MySQL
教你如何使用Python实现二叉树结构及三种遍历
2021/06/18 Python