在Laravel迁移中更改列会导致异常:更改表的列需要Doctrine DBAL

Ahm*_*mad 21 database-migration laravel laravel-5.2

我试图reserves在一次迁移中更改表中某列的最大长度.代码如下所示:

public function up()
{
    //
    Schema::table('reserves', function($table){
        $table->string("mobile", 11)->change();
    });
}
Run Code Online (Sandbox Code Playgroud)

但是当通过工匠运行迁移时,它会引发异常并说:

[RuntimeException]更改表"reserve"的列需要Doctrine DBAL; 安装"doctrine/dbal".

有什么问题,如何解决?

Ahm*_*mad 54

通过在框架的根目录上执行以下命令,问题得以解决:

composer require doctrine/dbal
Run Code Online (Sandbox Code Playgroud)

  • 为什么默认情况下不安装它? (18认同)
  • @NicuVlad 默认情况下不会安装它,因为设计者希望将其排除在框架之外,因为他们认为这些更多的是边缘情况。如果需要,您总是可以将其拉入,因此他们选择将其保留在核心框架之外以避免膨胀。我不能说我同意,我一直在使用它,但这就是原因。 (13认同)