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)|
答案 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()