Итак, у меня есть базовый запрос c, который возвращает нашу модель Period
, этот запрос может дополнительно фильтровать эти периоды по отношениям Project
. Вот сокращенная версия ниже ...
$query = Period::query();
$query->whereIn('project_id', [1, 2]);
$entries = $query->get();
$projects = $entries->pluck('project')->unique();
return response()->json($projects);
Итак, учитывая приведенный выше код, по какой-то причине возвращаемый JSON не является массивом объектов, это объект объектов, например {"0":{}, "2":{}}
. Если я удалю вызов unique()
, он правильно вернет массив объектов.
Коллекция с уникальным методом и без него являются экземплярами Illuminate\Support\Collection
, и оба свойства items
коллекции являются массив объектов, поэтому я не вижу почему он возвращает разностную структуру.
Единственное различие, которое я вижу, это то, что когда я dd
собираю коллекцию с вызовом unique
, тогда ключи зеленые, а без уникального вызова они синие, указывая на строку и целое число, но когда я делаю $projects->keys()
, они все целые числа (но может ли keys
преобразовывать их в целые числа?).
С unique
звоните:
Without the unique
call:
введите описание изображения здесь