2016-08-22 64 views
-3

如何在迁移文件中放置多个外键和主键。在bellow我分享我的迁移文件代码。如何在迁移中删除表的外键和主键?

迁移文件

public function up() 
{ 
    Schema::create('role_user', function(Blueprint $table){ 
     $table->integer('role_id')->unsigned(); 
     $table->integer('user_id')->unsigned(); 


     $table->foreign('role_id') 
       ->references('id') 
       ->on('roles') 
       ->onDelete('cascade'); 

     $table->foreign('user_id') 
       ->references('id') 
       ->on('users') 
       ->onDelete('cascade'); 

     $table->primary(['role_id', 'user_id']); 

    }); 
} 
public function down() 
{ 
    Schema::drop('role_user'); 
    //how drop foreign and primary key here ? 
} 

回答

6

蓝图类提供dropForeigndropPrimary的方法允许你删除外键约束和主键。

以下应该做的伎俩:

public function down() 
{ 
    Schema::table('role_user', function (Blueprint $table) { 
     $table->dropForeign('role_user_role_id_foreign'); 
     $table->dropForeign('role_user_user_id_foreign'); 
     $table->dropPrimary(); 
    }); 
} 
+0

喜@jedzej我可以除去在单个dropForeign功能等dropForeign([ 'foreign_one',“foreign_two])两个外键; –

+0

你不能。无论如何,你为什么要这么做?只需将一行保存在一个小的迁移文件中? –