/** * @param \HorseStories\Models\Horses\Horse $horse * @param int $type * @return int */ public function getConnection(Horse $horse, $type) { $female = $horse->isFemale(); switch ($type) { case Pedigree::MOTHER: if ($female) { return 4; } return 3; case Pedigree::FATHER: if ($female) { return 4; } return 3; case Pedigree::SON: if ($female) { return 2; } return 1; case Pedigree::DAUGHTER: if ($female) { return 2; } return 1; } }
/** * @param \HorseStories\Models\Horses\Horse $horse * @param array $values */ public function update(Horse $horse, array $values = []) { $horse->name = $values['name']; $horse->gender = $values['gender']; $horse->breed = $values['breed']; $horse->height = $values['height']; $horse->color = $values['color']; $horse->date_of_birth = DateTime::createFromFormat('d/m/Y', $values['date_of_birth']); $horse->life_number = $values['life_number']; $initialDisciplines = []; foreach ($horse->disciplines as $initialDiscipline) { $initialDisciplines[$initialDiscipline->id] = $initialDiscipline->discipline; } foreach ($values['disciplines'] as $discipline) { $horse->disciplines()->updateOrCreate(['discipline' => $discipline, 'horse_id' => $horse->id]); } $unwantedDisciplines = array_diff($initialDisciplines, $values['disciplines']); foreach ($unwantedDisciplines as $key => $values) { $this->disciplines->removeById($key); } $horse->save(); }
/** * @param array $values * @param bool $pedigree * @return \HorseStories\Models\Horses\Horse */ public function create($values = [], $pedigree = false) { $horse = new Horse(); $horse->name = $values['name']; if (!$pedigree) { $horse->user_id = $this->auth->user()->id; } $horse->gender = $values['gender']; $horse->breed = $values['breed']; $horse->life_number = $values['life_number']; $horse->color = $values['color']; $horse->date_of_birth = DateTime::createFromFormat('d/m/Y', $values['date_of_birth']); $horse->height = $values['height']; $horse->slug = $this->slugCreator->createForHorse($values['name']); $horse->save(); if (array_key_exists('disciplines', $values)) { foreach ($values['disciplines'] as $discipline) { $horse->disciplines()->updateOrCreate(['discipline' => $discipline, 'horse_id' => $horse->id]); } } return $horse; }
public function index($horseSlug) { $horse = Horse::with('pictures')->where('slug', $horseSlug)->firstOrFail(); return view('horses.pictures.index', compact('horse')); }
/** * @param string $title * @return string */ public function createForHorse($title) { $slug = Str::slug($title); $slugCount = count($this->horse->whereRaw("slug REGEXP '^{$slug}(-[0-9]*)?\$'")->get()); return $slugCount > 0 ? "{$slug}-{$slugCount}" : $slug; }
public function index($horseSlug) { $horse = Horse::where('slug', $horseSlug)->firstOrFail(); $followers = $this->followsRepository->findForHorse($horse); return view('follows.index', compact('horse', 'followers')); }
/** * @param \HorseStories\Models\Horses\Horse $horse * @return \Illuminate\Database\Eloquent\Collection */ public function findForHorse(Horse $horse) { return $horse->followers()->get(); }
/** * @param \HorseStories\Models\Users\User $user * @return array */ public function findHorsesForSelect(User $user) { return $this->horse->with('statuses')->where('user_id', $user->id)->lists('name', 'id'); }