2017-01-01 2 views
1
class CreateCommentsTable extends Migration 
{ 
    /** 
    * Run the migrations. 
    * 
    * @return void 
    */ 
    public function up() 
    { 
     Schema::create('comments', function (Blueprint $table) { 
      $table->increments('id'); 
      $table->string('name'); 
      $table->string('email'); 
      $table->text('comment'); 

      $table->boolean('approved'); 
      $table->integer('post_id')->unsigned(); 
      $table->timestamps(); 
     }); 

     Schema::table('comments', function (Blueprint $table) { 
      $table->foreign('post_id')->references('id')->on('posts'); 
     }); 
    } 

    /** 
    * Reverse the migrations. 
    * 
    * @return void 
    */ 
    public function down() 
    { 
     Schema::dropForeign(['post_id']); 
     Schema::dropIfExists('comments'); 
    } 
} 

Это то, что мой класс миграции выглядит, я пытался удалить таблицу из базы данных, но он выдает мне ошибку.Призыв к неопределенным метод Осветите Database Схемы MySqlBuilder :: dropForeign()

Ошибка

Призыв к неопределенным метод Осветите \ Database \ Схемы \ MySqlBuilder :: dropForeign()

Я прошел через документации, но это оленья кожа, кажется, очень помогает ,

может ли кто-нибудь указать мою ошибку и каково было бы решение?

Просто, чтобы вы знали, я новичок в laravel.Go легко на меня. Спасибо !.

ответ

3

dropForeign должна быть вызвана при Schema::table с Blueprint объекта,

Schema::table('comments', function (Blueprint $table) { 
     $table->dropForeign('comments_post_id_foreign'); 
    }); 

Это следует за именования <table_name>_<foreign_table_name>_<column_name>_foreign.

ИЛИ

Schema::table('comments', function (Blueprint $table) { 
     $table->dropForeign(['your_key_name']); 
    }); 
+0

Если указать только ключ, он должен быть массивом. Иначе это не сработает. –

+0

Да, соглашение об именах для внешнего ключа при миграции - ' _ _ _foreign', правильно? – shoieb0101

+0

Да. В Laravel 5 вы также можете использовать только ключ, но он должен быть внутри массива, например 'dropForeign (['your_key_name'])' –

Смежные вопросы