遇到一個需求,需要修改數(shù)據(jù)庫中所有包含email的字段的表,要把里面的長度改為128位。Laravel獲取所有的表,然后循環(huán)判斷表里面有沒有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)
這里記一筆,比知道有沒有更好的方法一步獲取到當(dāng)前連接的數(shù)據(jù)庫里面的所有的表,我是用原生的sql語句show tables查出所有表,然后取出Tables_in_new_bcc_web這一列,然后才得到所有的表名,然后再去循環(huán)。
找到一個更棒的方式:
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獲取所有的數(shù)據(jù)庫表及結(jié)構(gòu)的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- Laravel框架數(shù)據(jù)庫CURD操作、連貫操作總結(jié)
- Laravel5.1數(shù)據(jù)庫連接、創(chuàng)建數(shù)據(jù)庫、創(chuàng)建model及創(chuàng)建控制器的方法
- Laravel框架實(shí)現(xiàn)多數(shù)據(jù)庫連接操作詳解
- Laravel如何同時連接多個數(shù)據(jù)庫詳解
- laravel框架數(shù)據(jù)庫配置及操作數(shù)據(jù)庫示例
- 淺談laravel數(shù)據(jù)庫查詢返回的數(shù)據(jù)形式
- Laravel創(chuàng)建數(shù)據(jù)庫表結(jié)構(gòu)的例子
- laravel 操作數(shù)據(jù)庫常用函數(shù)的返回值方法
- Laravel5.5 數(shù)據(jù)庫遷移:創(chuàng)建表與修改表示例
- Laravel數(shù)據(jù)庫讀寫分離配置的方法
- Laravel框架DB facade數(shù)據(jù)庫操作詳解