DevsDawn
DevsDawn

ThinkPHP模型关联设置允许查询软删除数据

在使用ThinkPHP的模型关联和软删除功能时,我们可能会遇到一些特殊的需求。例如在某些情况下,我们希望关联数据即使已经被软删除,也需要查询出来。此时如果直接使用belongsTo之类的关联方法,查询出来的数据默认过滤了软删除数据。

例如,在获取一篇文章的发布者时,如果对应的用户已被删除,那么关联方法就无法获取对应的发布者信息。如果不想让软删除的用户影响关联结果,那么可以在模型关联中添加removeOption('soft_delete')方法:

public function user()
{
    return $this->belongsTo(User::class, 'uid')->removeOption('soft_delete');
}

如此一来,即使用户被软删除了,也可以通过$article->user来获取到文章发布者的信息,包括被软删除的用户。保证在查看文章数据时,不会因为对应发布的用户被软删除而丢失发布者的信息。

若无特别说明,本文采用 CC BY-SA 4.0 协议进行许可。如需转载,请附上本文链接和本声明。
本文链接:https://devsdawn.com/2023/11/thinkphp-model-relation-allow-querying-soft-deleted-data/
DigitalOcean云服务,美国上市公司,注册即送200USD体验金
Vultr云服务,全球25+地域,注册即送100USD体验金

发表回复

textsms
account_circle
email

DevsDawn

ThinkPHP模型关联设置允许查询软删除数据
在使用ThinkPHP的模型关联和软删除功能时,我们可能会遇到一些特殊的需求。例如在某些情况下,我们希望关联数据即使已经被软删除,也需要查询出来。此时如果直接使用belongsTo之类的关联…
扫描二维码继续阅读
2023-11-06