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,如果您发现它是正确的,请将答案标记为有用