Laravel:如何创建从表中删除多个列的迁移文件?

时间:2017-11-22 03:18:11

标签: php laravel laravel-5.5

当我删除列时,我使用以下命令创建迁移文件

  

php artisan make:migration drop_institue_id_column_from_providers

和迁移文件:

public function up()
{
    Schema::table('providers', function(Blueprint $table) {
          $table->dropColumn('institue_id');
    });
}


public function down()
{
    Schema::table('providers', function (Blueprint $table)
    {
        $table->integer('institue_id')->unsigned(); 
    });
}

如果我想删除多个列,我可以这样编写迁移文件,

public function up()
{
    Schema::table('providers', function(Blueprint $table) {
          $table->dropColumn('institue_id');
          $table->dropColumn('institue_name');
          $table->dropColumn('institue_address');
    });
}


public function down()
{
    Schema::table('providers', function (Blueprint $table)
    {
        $table->integer('institue_id')->unsigned(); 
        $table->char('institue_name');
        $table->char('institue_address');
    });
}

但是创建该迁移文件的命令是什么?谢谢。

3 个答案:

答案 0 :(得分:2)

我认为这只是关于迁移类的命名约定的问题。

如果是这样,那么调用文件\类并不重要,只要它能让你很好地了解它的作用。

所以它可能是这样的:

  

php artisan make:migration drop_institue_columns_from_providers

答案 1 :(得分:2)

当您执行php artisan make:migration命令时,它只会创建一个类,您可以在其中指定可以执行的迁移。您可以对一个表进行许多修改,即使对于许多表也是如此。所以只需将所有代码放在一个迁移文件中即可。

答案 2 :(得分:1)

要创建迁移文件,请运行:

php artisan make: migration your_migration_file_name_here

然后你可以通过传递一个数组来删除多列

 Schema::table('providers', function(Blueprint $table) {
      $table->dropColumn('institue_id', 'institue_name', 'institue_address');
});