В индексе моего пользовательского контроллера у меня есть следующее:
return QueryBuilder::for(User::class)
->with('phoneNumbers')
->allowedIncludes('trashed')
->get();
Я надеялся передать включаемый параметр следующим образом:
http://127.0.0.1:8000/v1/users?include=trashed
Чтобы добавить withTrashed()
глобальный охват запроса.
Это возможно? Я, скорее всего, упускаю что-то очевидное, я пробовал несколько вариантов в моем тестировании, обычно заканчивающемся ошибкой, такой как:
"message": "Call to a member function addEagerConstraints() on boolean",
"exception": "Symfony\\Component\\Debug\\Exception\\FatalThrowableError",
"file": "/Users/timwickstrom/Sites/Wavefire/api/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php",
"line": 522,
Для справки:
https://github.com/spatie/laravel-query-builderвведите описание ссылки здесь
После проверки этой библиотеки, вот что у меня есть.
return QueryBuilder::for(User::class)
->with('phoneNumbers') // <-- I think you can use `allowedIncludes` here.
->allowedFilters([ // <-- I believe that `withTrashed` is a scope query,
// so you can use this. You cannot use `allowedIncludes`
// because it works with relations.
Filter::scope('withTrashed')
])
->get();
Других решений пока нет …