有没有办法检索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