Laravel:如何获取表列名称,其类型和长度

问题描述 投票:6回答:3

Laravel 5 / 5.1中是否有可用的方法,通过它我们可以获取表列的名称,其类型和长度,均值表元数据?

例如:

Name    |    Type    |    Length

ID      |    Integer |    11
Name    |    varchar |    100
Email   |    varchar |    100
Password|    md5     |    82
Address |    tinytext|    
DOB     |    date    |    
Status  |    enum(0,1)|
php mysql laravel laravel-5 laravel-5.1
3个回答
1
投票

我尝试了此操作,但由于并非所有驱动程序都受支持,因此一直出现PDO错误。因此,如果您使用MySQL或MariaDB,则可能会有所帮助。

$columns = DB::select( DB::raw('SHOW COLUMNS FROM `'.$table.'`'));

foreach($columns as $column) {
    $name = $column->Name;
    $type = $column->Type;
}

0
投票

您可以在这里检查。 https://laravel.com/api/5.1/Illuminate/Database/Connection.html

从用户表中获取密码字段类型的示例代码。

dd(DB::connection()->getDoctrineColumn('users', 'password')->getType()->getName());

我将其余的留给您。好运:)


0
投票

我在项目开始时就已添加到较大的模型中的一件事是一个方便的静态函数,该函数将所有表列数据作为数组返回,因此可以与Tinker或其他方式一起使用:

public static function describe()
{
    return DB::select(DB::raw("DESCRIBE " . (new self)->getTable(). ";"));
}

然后通过修补程序或其他方式使用App \ Models \ ModelName :: describe()调用此选项>

© www.soinside.com 2019 - 2024. All rights reserved.