有没有办法检索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. laravel中帖子的自动删除日期5.4
- 4. Laravel 5.4数组中删除键索引
- 5. 在laravel中获取类别帖子5.4
- 6. 如何在删除用户的帖子后删除用户的帖子? - Rails
- 7. 非用户删除帖子
- 8. 从Laravel中删除Glyphicons 5.4
- 9. 使用laravel删除帖子的形式
- 10. Laravel - 软删除 - 将帖子移动到其他表格
- 11. 如何在laravel中强制删除5.4
- 12. 删除on Eloquent不删除Laravel 5.4
- 13. 如何删除laravel 5.4
- 14. 如何让用户删除帖子?
- 15. 从Laravel 5.4数据库中删除值
- 16. 软删除与Laravel的硬删除
- 17. 检索幼虫中帖子的用户信息的问题
- 18. 检索用户帖子和朋友帖子
- 19. 使用删除按钮删除用户帖子
- 20. 如何使用laravel 5.4删除文件夹中laravel前缀
- 21. 在PHP中删除用户的帖子/输入
- 22. 在CodeIgniter中使用AJAX删除帖子
- 23. 软删除在laravel 5应用physicaldelete deleted_at
- 24. 正在检索Facebook的帖子在php中的帖子
- 25. 在rethinkdb中检索包含用户信息的帖子
- 26. 使用Laravel渲染帖子的视图,并从该帖子检索喜欢
- 27. 删除帖子删除与在轨交
- 28. Laravel - 雄辩:从用户帖子中获取帖子
- 29. 如果用户被删除,确保属于用户的帖子被删除
- 30. 从流中删除帖子
通常通过在该记录上设置布尔标志“已删除”为true来完成“软删除”。查询跳过了“删除”纯粹的用户端列表。但正如你所说,他们仍然在那里直接链接或为现有职位取名。我对laravel 5.4没有经验,但是没有办法没有技术上的理由。 Override或Default值都可以轻松完成此操作。将更多的打赌覆盖(数据库查询性能的原因)。 – Christopher
软删除用户a)将用户留在数据库中(去看看)和b)对其关系没有做任何事情(除非你编码自己的逻辑去做)。你有没有试图以任何方式访问这些帖子?你使用什么代码? – ceejayoz
肯定,但由于某种原因,当我用柔软的后沿删除用户失败每次公共职能破坏($ ID) {$ 管理员=用户:: findOrFail($ ID); $ admins - > project() - > delete(); $ admins-> project() - > delete(); return redirect() - > back(); }这是使用和已经建立的关系和其他一切的销毁方法 – user3089096