有沒有辦法檢索laravel 5.4中與軟刪除用戶相關的帖子?我想,因爲用戶仍然在數據庫中應該有辦法。在laravel 5.4中檢索軟刪除的用戶帖子
回答
當您軟刪除一條記錄時,它會在數據庫中刪除flagged
,但該記錄仍然存在。
,您仍然可以檢索它是這樣的:
$users = App\User::withTrashed()->get();
這應該工作,我想。
Post::whereHas('users', function ($q) {
$q->whereNotNull($q->getModel()->getQualifiedDeletedAtColumn());
})->get();
這是一個where子句基本上添加到加入表deleted_at
列是not null
。或者,這也可能是單線的。
User::with('posts')->onlyTrashed()->get()->map->posts->collapse();
onlyTrashed
是如所描述的在here性狀SoftDeletes
定義的方法。在onlyTrashed
旁邊有更多'範圍擴展',它們是restore
,withTrashed
,withoutTrashed
。
我不知道,但我認爲在collapse
之後加入->unique('id')
也不錯。
這是waaaaaay過於複雜的事情,當OP只需'用戶:: withTrashed() - > whereId($ ID) - >第一();' – ceejayoz
@ceejayoz OP的問題:有沒有什麼辦法來檢索** **職位是與一個軟刪除**用戶相關**。關係。 – Chay22
好吧,但現在當我嘗試刪除用戶和發佈它只是刪除用戶,而不是帖子。公共職能銷燬($ id) { $ admins = User :: findOrFail($ id); $ admins - > delete(); $ admins-> project() - > delete(); return redirect() - > back(); },這是laracasts上使用的代碼。由於某種原因,它沒有得到相關的使用的職位,但只是獲取用戶,並刪除it.this是它顯示FatalThrowableError在HomeController.php行70錯誤: 調用一個成員函數上的空 – user3089096
我不想恢復已刪除的帖子,並保留自己的用戶刪除原因,這將返回一個斷開的關係。
,但如果你想恢復它,知道刪除用戶的id,你可以這樣恢復:同樣
Post::onlyTrashed()->where('user_id', $id)->restore();
,我建議不這樣做。
- 1. 在laravel中使用ajax和js刪除用戶帖子5.4
- 2. Laravel 5.4 Zizaco /委託 - 用戶軟刪除
- 3. 如何在刪除用戶的帖子後刪除用戶的帖子? - Rails
- 4. Laravel 5.4數組中刪除鍵索引
- 5. 在laravel中獲取類別帖子5.4
- 6. 非用戶刪除帖子
- 7. 使用laravel刪除帖子的形式
- 8. 從Laravel中刪除Glyphicons 5.4
- 9. Laravel - 軟刪除 - 將帖子移動到其他表格
- 10. 如何刪除laravel 5.4
- 11. 如何讓用戶刪除帖子?
- 12. 軟刪除與Laravel的硬刪除
- 13. 從Laravel 5.4數據庫中刪除值
- 14. 在CodeIgniter中使用AJAX刪除帖子
- 15. 在PHP中刪除用戶的帖子/輸入
- 16. 在rethinkdb中檢索包含用戶信息的帖子
- 17. 刪除帖子刪除與在軌交
- 18. 從流中刪除帖子
- 19. Laravel - 雄辯:從用戶帖子中獲取帖子
- 20. 如何阻止用戶刪除其他用戶的帖子?
- 21. 無法檢索帖子值
- 22. 如何創建流行的帖子在Laravel 5.4
- 23. Laravel 5.4 - 查詢獲取當前用戶所關注人員的所有帖子
- 24. android - 如何檢索用戶的google +中的所有帖子
- 25. 問題而刪除文件:Laravel 5.4
- 26. 用戶在laravel中計數記錄5.4
- 27. Facebook的帖子刪除
- 28. 在Jira軟件中檢索已刪除的票證
- 29. 如何在jekyll中刪除empy帖子
- 30. 在Laravel中檢索特定類別的產品5.4
通常通過在該記錄上設置布爾標誌「已刪除」爲true來完成「軟刪除」。查詢跳過了「刪除」純粹的用戶端列表。但正如你所說,他們仍然在那裏直接鏈接或爲現有職位取名。我對laravel 5.4沒有經驗,但是沒有辦法沒有技術上的理由。 Override或Default值都可以輕鬆完成此操作。將更多的打賭覆蓋(數據庫查詢性能的原因)。 – Christopher
軟刪除用戶a)將用戶留在數據庫中(去看看)和b)對其關係沒有做任何事情(除非你編碼自己的邏輯去做)。你有沒有試圖以任何方式訪問這些帖子?你使用什麼代碼? – ceejayoz
肯定,但由於某種原因,當我用柔軟的後沿刪除用戶失敗每次公共職能破壞($ ID) {$ 管理員=用戶:: findOrFail($ ID); $ admins - > project() - > delete(); $ admins-> project() - > delete(); return redirect() - > back(); }這是使用和已經建立的關係和其他一切的銷燬方法 – user3089096