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 5.3新特性命名空间规则解析及高级功能
Mar 11 PHP
ThinkPHP使用smarty模板引擎的方法
Jul 01 PHP
php数组索引的Key加引号和不加引号的区别
Aug 19 PHP
浅析PHP文件下载原理
Dec 25 PHP
php实现的简易扫雷游戏实例
Jul 09 PHP
php文件系统处理方法小结
May 23 PHP
THINKPHP在添加数据的时候获取主键id的值方法
Apr 03 PHP
微信开发之获取JSAPI TICKET
Jul 07 PHP
PHP操作Redis常用技巧总结
Apr 24 PHP
PHP中$GLOBALS与global的区别详解
Mar 21 PHP
PHP实现字母数字混合验证码功能
Jul 11 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
Dec 31 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
现磨咖啡骗局!现磨咖啡=新鲜咖啡?现磨咖啡背后的猫腻你不懂!
2019/03/28 冲泡冲煮
简单的页面缓冲技术
2006/10/09 PHP
PHP容易忘记的知识点分享
2013/04/30 PHP
判断php数组是否为索引数组的实现方法
2013/06/13 PHP
图文详解PHP环境搭建教程
2016/07/16 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
javascript 数据类型转换(parseInt,parseFloat)
2010/07/20 Javascript
js获取location.href的参数实例代码
2013/08/02 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
基于javascript实现窗口抖动效果
2016/01/03 Javascript
JS简单获取客户端IP地址的方法【调用搜狐接口】
2016/09/05 Javascript
etmvc+jQuery EasyUI+combobox多值操作实现角色授权实例
2016/11/09 Javascript
vue路由传参页面刷新参数丢失问题解决方案
2019/10/08 Javascript
Node.js中出现未捕获异常的处理方法
2020/06/29 Javascript
python登录QQ邮箱发信的实现代码
2013/02/10 Python
Python读写Excel文件的实例
2013/11/01 Python
Python中统计函数运行耗时的方法
2015/05/05 Python
Python日期的加减等操作的示例
2017/08/15 Python
python中利用Future对象回调别的函数示例代码
2017/09/07 Python
如何用C代码给Python写扩展库(Cython)
2019/05/17 Python
Python 获取ftp服务器文件时间的方法
2019/07/02 Python
使用python实现数组、链表、队列、栈的方法
2019/12/20 Python
python cv2在验证码识别中应用实例解析
2019/12/25 Python
Django REST framwork的权限验证实例
2020/04/02 Python
CSS3实例分享--超炫checkbox复选框和radio单选框
2014/09/01 HTML / CSS
英国定做窗帘和纺织品面料一站式商店:Dekoria
2018/08/29 全球购物
华为python面试题
2016/05/03 面试题
保安员岗位职责
2013/11/17 职场文书
医生进修自我鉴定
2014/01/19 职场文书
公司运动会策划方案
2014/05/25 职场文书
中药学专业求职信
2014/05/31 职场文书
岗位竞聘报告范文
2014/11/06 职场文书
小学优秀班主任材料
2014/12/17 职场文书
企业法人代表证明书
2015/06/18 职场文书
创业计划书之婴幼儿游泳馆
2019/09/11 职场文书
go goroutine 怎样进行错误处理
2021/07/16 Golang