2016-09-21 3 views
0

Я хотел бы иметь собственное имя для моего внешнего ключа. Как я могу сделать ? Я использую ниже код, но поймите меня ошибка:Ошибка синтаксиса или нарушение доступа: 1072 Ключевой столбец - самоподключение

SQLSTATE [42000]: Ошибка синтаксиса или нарушение доступа: 1072 Key колонка «parent_section_id» не существует в таблице (SQL: изменить таблицу sections добавить ограничение sections_parent_section_id _foreign внешний ключ (parent_section_id) ссылки sections (id) на удаления каскада)

, что я хочу:

id - title - parent_section_id

parent_section_id ссылка на таблицу текущего идентификатора

public function up() 
{ 
    Schema::create('sections', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->string('title'); 
     $table->foreign('parent_section_id')->references('id')->on('sections')->onDelete('cascade'); 
     $table->timestamps(); 
    }); 
} 

ответ

1

Try это,

public function up() 
{ 
    Schema::create('sections', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->integer('parent_section_id')->unsigned(); 

     $table->string('title'); 
     $table->foreign('parent_section_id') 
       ->references('id')->on('sections')->onDelete('cascade'); 
     $table->timestamps(); 
    }); 
}