Вы не можете добавить внешний ключ в таблицу, которая не существует. В вашем случае вы пытаетесь создать role_id
до создания таблицы roles
.
При миграции таблицы roles
вам нужно будет обновить таблицу users
после создания таблицы roles
:
Schema::create('roles', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('role_name',255);
$table->longText('role_description',255);
$table->integer('sort_order');
$table->enum('status',['A','I','D'])->comment('A-active','I-inactive,D-delete');
$table->enum('is_deleted',['Y','N'])->comment('Y-yes,N-no');
$table->timestamps();
$table->bigInteger('created_by');
$table->bigInteger('updated_by')->default(0);
$table->bigInteger('deleted_by')->default(0);
$table->timestamp('deleted_at')->nullable();
});
Schema::table('users', function (Blueprint $table) {
$table->unsignedBigInteger('role_id');
$table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade');
});
Примечание: Используйте Schema::table()
вместо Schema::create()
при внесении изменений в таблицу.
В методе down()
миграции roles
необходимо удалить внешний ключ и поле:
Schema::table('users', function (Blueprint $table) {
$table->dropForeign(['role_id']);
$table->dropColumn('role_id');
});