你好,我剛剛注意到softDelete的一個奇怪的行爲。基本上,當我查詢一組相關模型時,Eloquent返回一個集合,其中也包含軟刪除的行。Laravel 4.2返回軟刪除BelongsToMany結果
我一直在關注softdelete的特性使用方面的4.2指南,我的代碼工作得很好,只要我得到/刪除/恢復/強制刪除我的模型。這個問題是由關係觸發的。
考慮這種情況: 我有了一個belongToMany友誼關係下的友誼狀態可以接受/待處理/申請/受阻如下用戶模型:
public function friends() {
return $this->belongsToMany('User', 'friends', 'user_id', 'friend_id')->where('status', 'accepted');
}
該朋友錶行基本上是「向量「,其中user1-> status-> user2,反之亦然(user2-> status-> user1位於另一行)。 當user1決定不再與user2交朋友時,2個好友行被軟刪除。
這裏的問題:當我從控制器這樣的查詢數據庫:
$friends = $user->friends;
甚至softdeleted行返回集合中顯示出來,即使我本來期望這些從結果中隱藏,除非我用 - > withTrashed()。
我懷疑belongsToMany()方法沒有考慮數據透視表上的deleted_at字段。
有沒有人遇到過類似的問題?我在做這個關係有問題嗎?
非常感謝您的幫助!
看起來很有希望。一有機會,我會盡快嘗試。非常好的發現! – 2015-02-14 17:59:46