/** * Run the migrations. * * @return void */ public function up() { Schema::create('conference_sponsors', function (Blueprint $table) { $table->increments('id'); $table->integer('conference_id'); $table->integer('sponsor_id'); $table->string('sponsorship'); $table->timestamps(); $table->timestamp('published')->nullable(); $table->softDeletes(); }); ConferenceSponsor::create(['conference_id' => 1, 'sponsor_id' => 1, 'sponsorship' => 'Gold', 'published' => Carbon::create(2015, 00, 15, 07, 30, 00)]); ConferenceSponsor::create(['conference_id' => 1, 'sponsor_id' => 2, 'sponsorship' => 'Ruby', 'published' => Carbon::create(2015, 00, 15, 07, 30, 00)]); ConferenceSponsor::create(['conference_id' => 1, 'sponsor_id' => 3, 'sponsorship' => 'Diamond', 'published' => Carbon::create(2015, 00, 15, 07, 30, 00)]); ConferenceSponsor::create(['conference_id' => 1, 'sponsor_id' => 4, 'sponsorship' => 'Gold', 'published' => Carbon::create(2015, 00, 15, 07, 30, 00)]); ConferenceSponsor::create(['conference_id' => 1, 'sponsor_id' => 5, 'sponsorship' => 'Ruby', 'published' => Carbon::create(2015, 00, 15, 07, 30, 00)]); ConferenceSponsor::create(['conference_id' => 1, 'sponsor_id' => 6, 'sponsorship' => 'Gold', 'published' => Carbon::create(2015, 00, 15, 07, 30, 00)]); ConferenceSponsor::create(['conference_id' => 1, 'sponsor_id' => 7, 'sponsorship' => 'Diamond', 'published' => Carbon::create(2015, 00, 15, 07, 30, 00)]); ConferenceSponsor::create(['conference_id' => 1, 'sponsor_id' => 8, 'sponsorship' => 'Gold', 'published' => Carbon::create(2015, 00, 15, 07, 30, 00)]); ConferenceSponsor::create(['conference_id' => 1, 'sponsor_id' => 9, 'sponsorship' => 'Gold', 'published' => Carbon::create(2015, 00, 15, 07, 30, 00)]); ConferenceSponsor::create(['conference_id' => 1, 'sponsor_id' => 10, 'sponsorship' => 'Ruby', 'published' => Carbon::create(2015, 00, 15, 07, 30, 00)]); ConferenceSponsor::create(['conference_id' => 1, 'sponsor_id' => 11, 'sponsorship' => 'Diamond', 'published' => Carbon::create(2015, 00, 15, 07, 30, 00)]); ConferenceSponsor::create(['conference_id' => 1, 'sponsor_id' => 12, 'sponsorship' => 'Gold', 'published' => Carbon::create(2015, 00, 15, 07, 30, 00)]); }
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) []; }