/** * Returns the principle names * * @return string */ public function getPrinciplesAttribute() { $out = array(); foreach ($this->principle_id as $id) { $principle = Principle::where('id', $id); if ($principle->count() === 1) { $out[] = $principle->first()->name; } } return join(', ', $out); }
/** * Display the random practice plan * * @param string $ageGroup Age group slug * @param string $focus Focus slug * @param string $principle Principle slug * * @return Response */ public function plan($ageGroup, $focus, $principle, Request $request) { $savedDrills = $request->input('saved_drills') ? $request->input('saved_drills') : array(); $ageGroupModel = AgeGroup::where('slug', $ageGroup); if ($ageGroupModel->count() < 1) { return redirect()->route('home'); } if (Focus::where('slug', $focus)->count() < 1) { return redirect()->route('home.focus', $ageGroup); } $principleModel = Principle::where('slug', $principle); if ($principleModel->count() < 1) { return redirect()->route('home.principle', $ageGroup, $focus); } $drills = array(); foreach (Stage::all() as $stage) { $drill = null; if (array_key_exists($stage->id, $savedDrills)) { $drill = Drill::where('id', $savedDrills[$stage->id])->first(); $drill->saved = true; } if (!$drill) { $drill = Drill::where('stage_id', $stage->id)->get()->random(); } // Filter out age groups if (!in_array($ageGroupModel->get()->first()->id, $drill->age_id)) { continue; } // Filter out principles if (!in_array($principleModel->get()->first()->id, $drill->principle_id)) { continue; } $drill->notes = str_replace("\n", '<br>', $drill->notes); $drill->coaching_points = str_replace("\n", '<br>', $drill->coaching_points); $drills[] = $drill; } return view('home.plan')->with('ageGroup', $ageGroup)->withFocus($focus)->withPrinciple($principle)->withDrills($drills); }