我在视图中获取此代码以获取特定表的列
$columns = \Schema::getColumnListing('posts')
所以我制作了一个foreach
循环来获取所有列'名。但是现在我正在制作一个CRUD生成器,所以我需要列类型来知道我将为它制作哪种类型的字段。上面的代码只给了我一栏'名。我怎样才能获得列类型?
更新:
我搜索了包含getColumnListing方法的文件,然后找到了一个名为getColumnType($table, $column)
的方法。它返回一个字符串。
我尝试使用它但是我收到了这个错误:
FatalErrorException in MySqlConnection.php line 64:
Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not found
答案 0 :(得分:2)
我在项目中搜索了getColumnListing
方法,我在一个名为Builder.php
的文件中找到了它,在getColumnListing
方法的确切上面,我找到了一个名为getColumnType($table, $column)
的方法
我尝试使用这行代码使用getColumnType
方法:
$type = \Schema::getColumnType('{{collection}}s', $col);
但是我收到了这个错误:FatalErrorException in MySqlConnection.php line 64:
Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not found
这是因为错过了一个名为doctrine/dbal
的软件包,不再包含laravel 5.2
所以我运行这个命令composer require doctrine/dbal
,我不再有任何错误。
感谢@pari告诉我安装doctrin / dbal。
答案 1 :(得分:0)
你可以在你的foreach中使用getColumnType()方法。
这个包是必要的。
composer require doctrine/dbal
答案 2 :(得分:0)
试用此代码
$tables = ['tablename'];
foreach($tables as $table){
$table_info_columns = DB::select( DB::raw('SHOW COLUMNS FROM '.$table));
foreach($table_info_columns as $column){
$col_name = $column->Field;
$col_type = $column->Type;
var_dump($col_name,$col_type);
}
}