Ya, itu skema Anda. Batasan pada likes.post_id
akan mencegah Anda menghapus catatan dari posts
tabel.
Salah satu solusinya bisa menggunakan onDelete('cascade')
di likes
file migrasi:
Schema::create('likes', function (Blueprint $table) {
$table->integer('post_id')->unsigned();
$table->foreign('post_id')->references('id')->on('posts')->onDelete('cascade');
});
Dengan cara ini, ketika sebuah postingan dihapus, semua suka terkait juga akan dihapus.
Atau, jika Anda memiliki hubungan dari model Post ke model Suka, Anda dapat $post->likes()->delete()
sebelum menghapus postingan itu sendiri.