Когда я изменил свой первичный ключ с инкрементов на строку (user_id), я получил ошибку при миграции. Кажется, я не понимаю, где я ошибся. мои файлы миграции были в порядке, пока я не перешел с (-> приращения, а другой -> целое число) на (-> строка на обоих). Проблема в том, что когда он переносит таблицу clanmembers, он говорит, что внешний ключ сформирован неправильно.
Мой код раньше. Вроде все нормально, ничего страшного с миграцией в cmd
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('user_id');
$table->string('fname', 50);
$table->string('lname', 50);
$table->integer('age');
$table->string('gender', 10);
$table->string('address', 50);
$table->timestamps();
});
}
public function up()
{
Schema::create('clanmembers', function (Blueprint $table) {
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('user_id')->on('users')->onDelete('cascade');
$table->integer('clan_id')->unsigned();
$table->foreign('clan_id')->references('clan_id')->on('clans')->onDelete('cascade');
$table->string('bandrole', 50);
$table->timestamps();
});
}
Мой код теперь после того, как я изменил -> инкременты и -> целое число на оба -> строку
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->string('user_id');
$table->string('fname', 50);
$table->string('lname', 50);
$table->integer('age');
$table->string('gender', 10);
$table->string('address', 50);
$table->timestamps();
});
}
public function up()
{
Schema::create('clanmembers', function (Blueprint $table) {
$table->string('user_id');
$table->foreign('user_id')->references('user_id')->on('users')->onDelete('cascade');
$table->integer('clan_id')->unsigned();
$table->foreign('clan_id')->references('clan_id')->on('clans')->onDelete('cascade');
$table->string('clanrole', 50);
$table->timestamps();
});
}