2017-02-12 2 views
0

У меня есть миграции для моих тегов таблицы как ниже:Невозможно добавить ограничение внешнего ключа в заблуждении Laravel

Schema::create('tags', function (Blueprint $table) { 
      $table->increments('id'); 
      $table->char('tag' , 15); 
}); 

Теперь у меня есть следующая миграция для моей admin таблицы, в которой у меня есть внешний ключ, связанный с мой tags стол, миграция является следующее:

Schema::create('admin', function (Blueprint $table) { 
    $table->char('tag' , 15); 
    $table->foreign('tag')->references('tag')->on('tags'); 
}); 

Теперь, когда я запустить эту миграцию я получаю следующее сообщение об ошибке:

enter image description here

Обе таблицы: innodb Я изменил это в настройках в laravel. Но я все еще получаю не могу добавить ошибку ограничения внешнего ключа. Зачем ??

+0

[Этот ответ:] (https://stackoverflow.com/questions/22615926/migration-cannot-add-foreign-key-constraint-in-laravel) обращается к вашей проблеме. –

+0

Почему вы не ссылаетесь на столбец id вместо самого столбца тега? Во всяком случае, база данных чистая? Поскольку эта ошибка произойдет, если при создании внешнего ключа база данных теряет целостность, поэтому fk не может быть создан. –

+0

@DamianSimonPeter попытался этот оценка .. не работает, видел этот поток! –

ответ

0

Попробуйте

$table->foreign('tag')->references('id')->on('tags'); 

Поскольку в tags таблице первичный ключ id.