Исходная переменная get изменяется после запуска Query Builder при назначении ее другой переменной - PullRequest
0 голосов
/ 13 июня 2018

Сначала я создаю переменную $ formsessions, в которой я храню объект Query Builder (который содержит 50 объектов Formsession).

$formsessions = FormsessionsRepository::get($user, $params);

После этого я запускаю groupBy () и pluck () для $ formsessionsкоторый возвращает 3 состояния, которые я сохраняю в переменной $ formsession_statuses.

$formsession_statuses = $formsessions->groupBy('status')->pluck('status');

Проблема в том, что переменная $ formsessions также получает модифицированные после groupBy () и pluck () и возвращает 3 элемента вместо 50Есть ли способ извлечь элементы из объекта Query Builder и сохранить их в другой переменной без изменения оригинала?

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Используя groupBy() и pluck(), вы измените переменную $formsessions.Если вы этого не хотите, то должны определить другую переменную из $formsessions и применить операции groupBy() и pluck() к этой новой переменной.

$formsessions = FormsessionsRepository::get($user, $params);

$formsessionsNew = clone $formsessions;

$formsession_statuses = $formsessionsNew->groupBy('status')->pluck('status');

Подробнее о клон

0 голосов
/ 13 июня 2018

Короткий ответ

$formsessionsClone = clone $formsessions;
$formsession_statuses = $formsessionsClone->groupBy('status')->pluck('status');

Для получения уникальных статусов используйте это

$formsession_statuses = $formsessions->unique('status')->pluck('status');
...