Tôi đã từng gặp vấn đề tương tự. Đã sửa nó bằng cách thêm nullable
đến trường:
Schema::create('table_name', function (Blueprint $table) {
...
$table->integer('some_id')->unsigned()->nullable();
$table->foreign('some_id')->references('id')->on('other_table');
...
});
Lưu ý rằng sau khi di chuyển, tất cả các hàng tồn tại sẽ có some_id = NULL
.
CẬP NHẬT :
Kể từ Laravel 7, có nhiều cách ngắn hơn để làm điều tương tự:
$table->foreignId('some_id')->nullable()->constrained();
Điều rất quan trọng là nullable
đi TRƯỚC KHI constrained
.
Bạn có thể tìm thêm thông tin tại đây, trong tài liệu chính thức