Php 如何在Laravel 5.2中获取列类型?

Php 如何在Laravel 5.2中获取列类型?,php,laravel,laravel-5,laravel-5.2,Php,Laravel,Laravel 5,Laravel 5.2,我在视图中获取此代码,以获取特定表的列 $columns = \Schema::getColumnListing('posts') 所以我做了一个foreach循环来获取所有列的名称。但是现在我正在制作一个CRUD生成器,所以我需要列类型来知道我将为它生成哪种类型的字段。上面的代码只给了我列的名称。如何获取列类型 更新: 我搜索了包含getColumnListing方法的文件,找到了一个名为getColumnType($table,$column)的方法。它返回一个字符串 我试图使用它,但出现

我在视图中获取此代码,以获取特定表的列

$columns = \Schema::getColumnListing('posts')
所以我做了一个
foreach
循环来获取所有列的名称。但是现在我正在制作一个CRUD生成器,所以我需要列类型来知道我将为它生成哪种类型的字段。上面的代码只给了我列的名称。如何获取列类型

更新: 我搜索了包含getColumnListing方法的文件,找到了一个名为
getColumnType($table,$column)
的方法。它返回一个字符串

我试图使用它,但出现以下错误:

MySqlConnection.php第64行中的FatalErrorException: 找不到类'doctor\DBAL\Driver\pdomsql\Driver'。

您可以在foreach中使用getColumnType()方法

这个包裹是必需的

composer require doctrine/dbal
试试这个代码

            $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);
              } 
            }

我在项目中搜索了
getColumnListing
方法,在名为
Builder.php
的文件中找到了它,在
getColumnListing
方法的正上方,我找到了一个名为
getColumnType($table,$column)

我尝试使用以下代码行使用
getColumnType
方法:

$type=\Schema::getColumnType({{collection}}s',$col)

但是我得到了这个错误:
MySqlConnection.php第64行中的FatalErrorException:
未找到类'doctor\DBAL\Driver\pdomsql\Driver',这是因为缺少名为
doctor/DBAL
的包,该包不再包含在laravel 5.2中

因此,我运行了这个命令
composer require-doctor/dbal
,不再出现错误


感谢@pari告诉我安装doctrin/dbal。

错误:调用字符串
$columns
上的成员函数getType()只获取列名称数组。让我检查一下,我看到了getColumnListing()方法所在的类。我发现了一个名为getColumnType($table,$column)的方法;我试过了,但在MySqlConnection.php第64行中发现:FatalErrorException:找不到类'doctor\DBAL\Driver\pdomsql\Driver'。你能帮我吗?你的laravel版本是什么?最新版本。Laravel 5.2之前尝试过,但我在MySqlConnection.php第64行中发现了FatalErrorException:类'doctor\DBAL\Driver\pdomsql\Driver'未找到Welcome@Ahmed,如果您发现它是正确的,请将答案标记为有用