#php #mysql #laravel
#php #mysql #laravel
Вопрос:
$getStrain = DB::connection('mysql')->select('
SELECT
b.yeast_class_id
FROM
yeast_classes AS a
LEFT JOIN
classes_per_yeast AS b
ON
a.id = b.yeast_class_id
WHERE
b.yeast_id = "'.$id.'"
GROUP BY
b.yeast_class_id
');
dd($getStrain);
и он возвращает что-то вроде этого
Но то, что я хочу сделать, это получить ответ примерно так
1,4,5,6,7
где все yeast_class_id
будет объединено вместе
Ответ №1:
Из этого массива объектов, которые у вас есть, вы можете pluck
преобразовать нужное вам поле из них в массив:
IlluminateSupportArr::pluck($getStrain, 'yeast_class_id')
Или поместите массив в коллекцию и используйте pluck
метод для коллекции:
collect($getStrain)->pluck('yeast_class_id')->all()
Если вам нужна строка списка, разделенная запятыми:
collect($getStrain)->pluck('yeast_class_id')->join(',')
Документы Laravel 8.x — Помощники — Массив и объекты — Arr::pluck
Документы Laravel 8.x — Помощники — Разное — collect
Документы Laravel 8.x — Коллекции — Доступные методы — pluck
Ответ №2:
Проверьте вспомогательные значения ()
$getStrainValues = $getStrain->values();