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

时间:2015-10-23 07:58:00

标签: php mysql laravel laravel-5 laravel-5.1

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)|

3 个答案:

答案 0 :(得分:0)

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

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

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

我会把剩下的留给你。古德勒克:)

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

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

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

然后通过修补程序或其他方式将其称为App \ Models \ ModelName :: describe()