public static function lookup_sponsors($params, $flags) { $groups = ConferenceSponsor::join('sponsors', 'conference_sponsors.sponsor_id', '=', 'sponsors.id')->where('conference_id', '=', $params->conference); if (self::flags($flags, 'published')) { $groups->whereNotNull('conference_sponsors.published')->where('conference_sponsors.published', '<', Carbon::now()); } if (self::flags($flags, 'sponsorlevels')) { $groups->orderBy('sponsorship'); } $groups->orderBy('company'); $groups = $groups->get(); if (!$groups->isEmpty()) { $sponsors = (object) []; $sponsorship = ''; foreach ($groups as $sponsor) { $sponsor = (object) $sponsor->toArray(); $slug = $sponsor->slug; if (self::flags($flags, 'sponsorlevels')) { if ($sponsorship !== $sponsor->sponsorship) { $sponsorship = $sponsor->sponsorship; $sponsors->{$sponsorship} = (object) []; } $sponsors->{$sponsorship}->{$slug} = $sponsor; } else { $sponsors->{$slug} = $sponsor; } } return $sponsors; } return (object) []; }