Theo như tôi hiểu; một bảng trung gian chỉ đơn giản là độ dài của chuỗi gắn một bản ghi bảng vào một bản ghi trong một bảng khác và do đó nó không yêu cầu một phương thức xóa mềm.
Để giải thích, hãy tưởng tượng bạn có bảng Người dùng và bảng Nhóm, mỗi người dùng có thể có nhiều Nhóm và mỗi Nhóm có thể thuộc nhiều hơn một Người dùng. Bảng tổng hợp của bạn có thể là User_Group
hoặc thứ gì đó tương tự và nó chỉ chứa hai cột user_id
và group_id
.
bạn User
bảng và Group
bảng cần phải có một cột deleted_at
cho xóa mềm mại, vì vậy khi bạn "xóa" nói một Group, mà hiệp hội nhóm sẽ không xuất hiện trong $User->Groups()
trong khi bảng hàng trục vẫn không bị ảnh hưởng. Nếu sau đó bạn khôi phục nhóm đã xóa đó, nó sẽ lại xuất hiện trong $User->Groups()
.
Hàng của bảng tổng hợp chỉ bị ảnh hưởng nếu bản ghi nhóm đó bị xóa cứng, trong trường hợp này, các hàng trục cũng sẽ bị xóa cứng.
Bây giờ tôi đã giải thích lý do tại sao tôi không tin rằng bạn cần phải thêm xóa mềm vào bảng tổng hợp; vẫn còn một lý do tại sao bạn cần hành vi này?
Một lựa chọn khác là cố gắng này https://github.com/mlezcano1985/laravel-pivot-soft-deletes –