Laravel 中获取数据表和字段信息?

Laravel5 中有没有函数或方法可以直接获取数据表和字段信息?

不想每次都写个函数执行SQL

show columns from table

希望用过的人,帮我下,谢谢!

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 6
Summer

此方法 Laravel 4 和 Laravel 5 都能用

$columns = Schema::getColumnListing('users');
dd($columns);

注意 Namespace

use Illuminate\Support\Facades\Schema;
9年前 评论
ayjl_211314 1年前
Summer

此方法 Laravel 4 和 Laravel 5 都能用

$columns = Schema::getColumnListing('users');
dd($columns);

注意 Namespace

use Illuminate\Support\Facades\Schema;
9年前 评论
ayjl_211314 1年前

我还想获取字段类型,字段长度,默认值,是否为空等等所有信息,如果快速查出来呢。

4年前 评论

这是我发现的代码最少的一个方法了

    $tables = Schema::getColumnListing($table_name);
    $obj = \DB::connection()->getDoctrineSchemaManager()
           ->listTableDetails($table_name);
    foreach ($tables as $value) {
       $dataType[] = $obj->getColumn($value);
    }

但是检测出来的数据,tinyInteger变成了boolean,longtext等统一变成了text.不是想要的结果

4年前 评论
$obj = \Illuminate\Support\Facades\DB::connection()->getDoctrineSchemaManager()->listTableDetails("customer_service_messages")->getColumns();

foreach ($obj as $k => $v){
       echo $k . " => " .$v->getType()->getName();
       echo PHP_EOL;
 }
3年前 评论
$results = DB::select('select column_name,data_type from information_schema.columns where table_name= ?', [$tableName]);
3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!