Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Есть две таблицы packages и packages_description. В первом: название, цена. В другом: package_id, описание. Написал запрос для вывода пакетов и их описания. Выдало:
[items:protected] => Array
(
[0] => stdClass Object
(
[id] => 7
[title] => Старт
[price] => 500
[order] => 1
[addition] =>
[description] => 1 вариант рекламного объявления
)
[1] => stdClass Object
(
[id] => 7
[title] => Старт
[price] => 500
[order] => 1
[addition] =>
[description] => Запуск 1 рекламного объявления
)
[2] => stdClass Object
(
[id] => 7
[title] => Старт
[price] => 500
[order] => 1
[addition] =>
[description] => отчет
)
[3] => stdClass Object
(
[id] => 8
[title] => Бизнес
[price] => 1500
[order] => 2
[addition] =>
[description] => отчет
)
[4] => stdClass Object
(
[id] => 9
[title] => Индивидуальный
[price] => 5000
[order] => 3
[addition] => от
[description] =>
)
)
Сам запрос:
$packages = DB::table('packages')
->select(DB::raw('packages.*, packages_description.description as description'))
->leftJoin('packages_description', 'packages.id', '=', 'packages_description.package_id')
->groupBy('id', 'description')
->get();
Как нужно вывести:
(
[id] => 7
[title] => Старт
[price] => 500
[order] => 1
[addition] =>
[description] => array( '1 вариант рекламного объявления', 'Запуск 1 рекламного объявления', 'отчет')
)
Пытался написать вот так, но выдаёт ошибку.
$descriptions = DB::table('packages_description')
->select('packages_description.description')
->groupBy('description');
$packages = DB::table('packages')
->select()
->leftJoinSub($descriptions, 'description', 'packages.id', '=', 'packages_description.package_id')
->groupBy("id")
->get();
Как правильно написать запрос?
Не в сети