public function run() { $faker = Faker::create(); DB::table('cerfs')->delete(); // Gets array of event IDs. $event_ids = Event::all()->lists('id')->toArray(); shuffle($event_ids); $user_ids = User::all()->lists('id')->toArray(); shuffle($user_ids); // TODO Events have many CERFs, so make sure to update seeder accordingly. // Each CERF should only have one event. Some events do not have an associated CERF. for ($counter = 0; $counter < 10; $counter++) { $event_id = $event_ids[$counter]; $user_id = $user_ids[$counter]; Cerf::create(array('event_id' => $event_id, 'reporter_id' => $user_id, 'amount_raised' => $faker->randomFloat(2, 0, 1000), 'amount_spent' => $faker->randomFloat(2, 0, 1000), 'net_profit' => $faker->randomFloat(2, 0, 1000), 'funds_purpose' => $faker->text, 'summary' => $faker->text, 'strengths' => $faker->text, 'weaknesses' => $faker->text, 'reflection' => $faker->text, 'approved' => false)); } }
/** * Store a newly created resource in storage. * * @param CreateCerfRequest $request * @return Response * @internal param $CreateCerfRequest */ public function store(CreateCerfRequest $request) { $input = $request->all(); $event = null; if (session()->has('hidden')) { // Extra validation for when events are created via CERF form. $this->validate($request, ['start_time' => 'required|date|before:end_time', 'end_time' => 'required|date']); /* * Creates event with minimal fields since an event made via the * CERF form should only be recorded for MRFs, and not placed on * the calendar. */ $event = Event::create(array('chair_id' => $input['chair_id'], 'creator_id' => Auth::check(), 'title' => $input['title'], 'description' => 'Event that is not on the calendar. Recorded for administrative purposes.', 'event_location' => $input['event_location'], 'start_time' => $input['start_time'], 'end_time' => $input['end_time'], 'hidden' => true)); // Removes all fields irrelevant to creating a CERF. unset($input['chair_id'], $input['title'], $input['event_location'], $input['start_time'], $input['end_time']); $input['event_id'] = $event->id; } else { /* * Finds event for current CERF and updates chair according to CERF * form. */ $event = Event::find($input['event_id']); $event->update(array('chair_id' => $input['chair_id'])); // Request contains start and end times to satisfy validation. unset($input['start_time'], $input['end_time']); } /* * Removes chair_id attribute from input before creating CERF since * chair_id is not a columns in cerfs table. Adds reporter_id field to * complete attributes array. */ unset($input['chair_id']); $input['reporter_id'] = Auth::id(); $cerf = Cerf::create($input); /* * Stores values in session for next steps of multi-page form to create * tags, activities, and Kiwanis attendees based on current event and * CERF. */ session()->put('event_id', $event->id); session()->put('cerf_id', $cerf->id); return redirect()->action('TagsController@create'); }