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中使用CURL伪造来路抓取页面或文件
May 04 PHP
php中使用explode查找某个字符是否存在的方法
Jul 12 PHP
php/js获取客户端mac地址的实现代码
Jul 08 PHP
php对数组排序的简单实例
Dec 25 PHP
PHP $_FILES中error返回值详解
Jan 30 PHP
yii框架通过控制台命令创建定时任务示例
Apr 30 PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
Oct 30 PHP
PHP合并discuz用户脚本的方法
Aug 04 PHP
Zend Framework教程之模型Model用法简单实例
Mar 04 PHP
Yii2中多表关联查询hasOne hasMany的方法
Feb 15 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
Apr 15 PHP
基于PHP实现发微博动态代码实例
Dec 11 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
用PHPdig打造属于你自己的Google[图文教程]
2007/02/14 PHP
PHP7.0安装笔记整理
2015/08/28 PHP
PHP实现微信网页授权开发教程
2016/01/19 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
javascript document.images实例
2008/05/27 Javascript
IE6下JS动态设置图片src地址问题
2010/01/08 Javascript
js控制的遮罩层实例介绍
2013/05/29 Javascript
按下Enter焦点移至下一个控件的实现js代码
2013/12/11 Javascript
jquery Ajax 实现加载数据前动画效果的示例代码
2014/02/07 Javascript
AngularJS实现表单验证
2015/01/28 Javascript
JavaScript实现的Tween算法及缓冲特效实例代码
2015/11/03 Javascript
javascript中类的定义方式详解(四种方式)
2015/12/22 Javascript
jQuery ajax提交Form表单实例(附demo源码)
2016/04/06 Javascript
全面理解JavaScript中的闭包
2016/05/12 Javascript
vue-router+vuex addRoutes实现路由动态加载及菜单动态加载
2017/09/28 Javascript
React路由管理之React Router总结
2018/05/10 Javascript
axios对请求各种异常情况处理的封装方法
2018/09/25 Javascript
基于JavaScript canvas绘制贝塞尔曲线
2018/12/25 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
2019/04/20 Javascript
JavaScript如何获取一个元素的样式信息
2019/07/29 Javascript
Vue项目打包部署到apache服务器的方法步骤
2021/02/01 Vue.js
[02:16]卖萌的僵尸 DOTA2神话信使飞僵小宝来袭
2014/03/24 DOTA
用实例详解Python中的Django框架中prefetch_related()函数对数据库查询的优化
2015/04/01 Python
从CentOS安装完成到生成词云python的实例
2017/12/01 Python
Python实现时钟显示效果思路详解
2018/04/11 Python
Python使用cx_Oracle模块操作Oracle数据库详解
2018/05/07 Python
Python如何实现小程序 无限求和平均
2020/02/18 Python
Python中if有多个条件处理方法
2020/02/26 Python
Python自动创建Excel并获取内容
2020/09/16 Python
linux面试题参考答案(11)
2016/11/26 面试题
保安的辞职报告怎么写
2014/01/20 职场文书
会计岗位职责范本
2014/03/07 职场文书
应聘教师自荐信
2015/03/26 职场文书
2015年统战工作总结
2015/05/19 职场文书
Redis的字符串是如何实现的
2021/10/24 Redis