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 相关文章推荐
我的论坛源代码(四)
Oct 09 PHP
php下通过POST还是GET来传值
Jun 05 PHP
php 获取远程网页内容的函数
Sep 08 PHP
如何使用PHP获取指定日期所在月的开始日期与结束日期
Aug 01 PHP
两个php日期控制类实例
Dec 09 PHP
php对象在内存中的存在形式分析
Feb 03 PHP
微信支付PHP SDK之微信公众号支付代码详解
Dec 09 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
Apr 11 PHP
Yii编程开发常见调用技巧集锦
Jul 15 PHP
php flush无效,IIS7下php实时输出的方法
Aug 25 PHP
PHP设计模式之模板方法模式实例浅析
Dec 20 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
Oct 25 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的开合式多级菜单程序
2006/10/09 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
2010/05/26 PHP
PHP解析RSS的方法
2015/03/05 PHP
php字符串替换函数substr_replace()用法实例
2015/03/17 PHP
jQuery入门第一课 jQuery选择符
2010/03/14 Javascript
asp.net 30分钟掌握无刷新 Repeater
2011/09/16 Javascript
基于jQuery判断两个元素是否有重叠部分的代码
2012/07/25 Javascript
jQuery模拟超链接点击效果代码
2013/04/21 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
2013/06/08 Javascript
鼠标移到导航当前位置的LI变色处于选中状态
2013/08/23 Javascript
jQuery防止click双击多次提交及传递动态函数或多参数
2014/04/02 Javascript
EasyUI中combobox默认值注意事项
2015/03/01 Javascript
JavaScript使用Replace进行字符串替换的方法
2015/04/14 Javascript
Node.js的npm包管理器基础使用教程
2016/05/26 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
jQuery基本过滤选择器用法示例
2016/09/09 Javascript
Bootstrap基本组件学习笔记之缩略图(13)
2016/12/08 Javascript
MUI  Scroll插件的使用详解
2017/04/13 Javascript
jQuery实现腾讯信用界面(自制刻度尺)样式
2017/08/15 jQuery
浅谈ES6 模板字符串的具体使用方法
2017/11/07 Javascript
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
一些常用的Python爬虫技巧汇总
2016/09/28 Python
详解Python中类的定义与使用
2017/04/11 Python
对pytorch网络层结构的数组化详解
2018/12/08 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
2019/10/24 Python
基于Python中isfile函数和isdir函数使用详解
2019/11/29 Python
Python模块future用法原理详解
2020/01/20 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
2014乡镇班子个人对照检查材料思想汇报
2014/09/26 职场文书
银行授权委托书格式
2014/10/10 职场文书
2015年试用期工作总结
2014/12/12 职场文书
2015年父亲节寄语
2015/03/23 职场文书
2016孝老爱亲模范事迹材料
2016/02/26 职场文书
python基于opencv批量生成验证码的示例
2021/04/28 Python
CSS浮动引起的高度塌陷问题
2022/08/05 HTML / CSS