gpt4 book ai didi

php - Laravel 全局查询范围的 withoutGlobalScope() 不返回所需的记录

转载 作者:行者123 更新时间:2023-12-01 12:12:33 28 4
gpt4 key购买 nike

我有一个名为 ArchiveScope 的全局查询范围,它模仿了软删除的类似功能。该范围的 apply 方法如下所示:

public function apply(Builder $builder, Model $model)
{
$builder->where('archived_at', '=', NULL);
}

所以当我使用 MyModel::all() ,它返回所有没有时间戳的行(即 NULL)。但是当我想获取所有记录(包括存档)时,我仍然得到相同的结果。我正在修补程序中运行此语句:
App\MyModel::withoutGlobalScope(ArchiveScope::class)->get();
奇怪的是,当我使用 withoutGlobalScopes() 时而不是 withoutGlobalScope(ArchiveScope::class)我得到了所有的记录。
App\MyModel::withoutGlobalScopes()->get();

最佳答案

定义完整的类路径可以解决问题:

App\MyModel::withoutGlobalScope('App\Scopes\ArchiveScope')->get();

关于php - Laravel 全局查询范围的 withoutGlobalScope() 不返回所需的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50713700/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com