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)|
我尝试了此操作,但由于并非所有驱动程序都受支持,因此一直出现PDO错误。因此,如果您使用MySQL或MariaDB,则可能会有所帮助。
$columns = DB::select( DB::raw('SHOW COLUMNS FROM `'.$table.'`'));
foreach($columns as $column) {
$name = $column->Name;
$type = $column->Type;
}
您可以在这里检查。 https://laravel.com/api/5.1/Illuminate/Database/Connection.html
从用户表中获取密码字段类型的示例代码。
dd(DB::connection()->getDoctrineColumn('users', 'password')->getType()->getName());
我将其余的留给您。好运:)
我在项目开始时就已添加到较大的模型中的一件事是一个方便的静态函数,该函数将所有表列数据作为数组返回,因此可以与Tinker或其他方式一起使用:
public static function describe()
{
return DB::select(DB::raw("DESCRIBE " . (new self)->getTable(). ";"));
}
然后通过修补程序或其他方式使用App \ Models \ ModelName :: describe()调用此选项>