猿问

Laravel 5.8 在“char”类型列迁移时出错

我试图在 laraval 5.8 中使用 php artisan migrate 命令更改我的 char 类型列默认值,但出现以下错误:


Unknown column type "char" requested. Any Doctrine type that you use has to be registered with \Doctrine\DBAL\Types\Type::addType(). You can get a list of all the known types with \Doctrine\DBAL\Types\Type::getTypesMap(). If this error occurs during database introspection then you might have forgotten to register all database types for a Doctrine Type. Use AbstractPlatform#registerDoctrineTypeMapping() or have your custom types implement Type#getMappedDatabaseTypes(). If the type name is empty you might have a problem with the cache or forgot some mapping information.

我当前的脚本如下:


use Illuminate\Support\Facades\Schema;

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Database\Migrations\Migration;


class AddTypeDeafultValueProjectsTable extends Migration

{

/**

 * Run the migrations.

 *

 * @return void

 */

public function up()

{


    Schema::table('projects', function (Blueprint $table) {

        $table->char('type', 50)->nullable(true)->change();

    });




}


/**

 * Reverse the migrations.

 *

 * @return void

 */

public function down()

{

    Schema::table('projects', function (Blueprint $table) {

        //

    });

}

}

我没有遇到其他数据类型列的问题,但仅针对 char 出现上述错误。可以帮我解决这个问题吗?


偶然的你
浏览 91回答 1
1回答

互换的青春

您需要在迁移脚本中添加以下脚本:在 use Illuminate\Database\Migrations\Migration 下或之上添加以下内容; use Doctrine\DBAL\Types\StringType; use Doctrine\DBAL\Types\Type;之后在 inside up 函数中添加以下脚本并再次尝试 php artisan migrate。    if (!Type::hasType('char')) {         Type::addType('char', StringType::class);     }
随时随地看视频慕课网APP
我要回答