У меня есть глобальная область запроса под названием 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();
Я решил эту проблему, просто объявив ссылку на класс
use App \ Scopes \ NomeScope;
$a = Model::withoutGlobalScope(NomeScope::class)->get();