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 相关文章推荐
通过ICQ网关发送手机短信的PHP源程序
Oct 09 PHP
令PHP初学者头疼十四条问题大总结
Nov 12 PHP
解析PHP中的正则表达式以及模式匹配
Jun 19 PHP
php表单请求获得数据求和示例
May 15 PHP
CodeIgniter记录错误日志的方法全面总结
May 17 PHP
yii2.0实现创建简单widgets示例
Jul 18 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
Oct 25 PHP
PHP对象实例化单例方法
Jan 19 PHP
PHP isset()与empty()的使用区别详解
Feb 10 PHP
php之可变变量的实例详解
Sep 12 PHP
php微信开发之图片回复功能
Jun 14 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 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
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
jQuery学习笔记之控制页面实现代码
2012/02/27 Javascript
jquery文本框中的事件应用以输入邮箱为例
2014/05/06 Javascript
JS显示下拉列表框内全部元素的方法
2015/03/31 Javascript
JavaScript中模拟实现jsonp
2015/06/19 Javascript
js实现接收表单的值并将值拼在表单action后面的方法
2015/11/23 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
深入浅析JS Function()构造函数
2016/08/22 Javascript
jQuery用FormData实现文件上传的方法
2016/11/21 Javascript
JS实现“隐藏与显示”功能(多种方法)
2016/11/24 Javascript
微信小程序开发中的疑问解答汇总
2017/07/03 Javascript
详解在vue-cli项目中使用mockjs(请求数据删除数据)
2017/10/23 Javascript
Vue.js单向绑定和双向绑定实例分析
2018/08/14 Javascript
基于 jQuery 实现键盘事件监听控件
2019/04/04 jQuery
javascript实现简单打字游戏
2019/10/29 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
2020/09/21 Javascript
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
[14:24]Optic Gaming vs PSG LGD BO3
2018/06/07 DOTA
使用python绘制二元函数图像的实例
2019/02/12 Python
python3获取文件中url内容并下载代码实例
2019/12/27 Python
TensorFlow设置日志级别的几种方式小结
2020/02/04 Python
Python unittest单元测试openpyxl实现过程解析
2020/05/27 Python
美国葡萄酒网上商店:Martha Stewart Wine Co.
2019/03/17 全球购物
美体小铺奥地利官方网站:The Body Shop奥地利
2019/04/11 全球购物
德国网上超市:myTime.de
2019/08/26 全球购物
怎样从/向数据文件读/写结构
2014/11/23 面试题
本科毕业生专业自荐书范文
2014/02/05 职场文书
工地例会施工汇报材料
2014/08/22 职场文书
食品安全承诺书范文
2014/08/29 职场文书
大学生自我评价200字(4篇)
2014/09/17 职场文书
2015年小学教导处工作总结
2015/05/26 职场文书
转学证明范本
2015/06/19 职场文书
2015秋季幼儿园开学通知
2015/07/16 职场文书
公安纪律作风整顿心得体会
2016/01/23 职场文书
《三国志》赏析
2019/08/27 职场文书
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python