added yoga stuff, i18n, workout tracking and a dashboard to track progress
This commit is contained in:
@@ -69,8 +69,40 @@ class ExerciseController extends Controller
|
||||
public function show(Exercise $exercise)
|
||||
{
|
||||
$exercise->load(['bodyParts:id,name,slug', 'targetMuscles:id,name,slug', 'secondaryMuscles:id,name,slug', 'equipments:id,name,slug']);
|
||||
|
||||
// Find similar exercises by shared target muscles, body parts, or equipment
|
||||
$targetIds = $exercise->targetMuscles->pluck('id')->all();
|
||||
$bodyPartIds = $exercise->bodyParts->pluck('id')->all();
|
||||
$equipmentIds = $exercise->equipments->pluck('id')->all();
|
||||
|
||||
$similarQuery = Exercise::query()
|
||||
->with(['bodyParts:id,name,slug', 'targetMuscles:id,name,slug', 'equipments:id,name,slug'])
|
||||
->where('id', '!=', $exercise->id)
|
||||
->where(function ($q) use ($targetIds, $bodyPartIds, $equipmentIds) {
|
||||
if (!empty($targetIds)) {
|
||||
$q->orWhereHas('targetMuscles', function ($rel) use ($targetIds) {
|
||||
$rel->whereIn('id', $targetIds);
|
||||
});
|
||||
}
|
||||
if (!empty($bodyPartIds)) {
|
||||
$q->orWhereHas('bodyParts', function ($rel) use ($bodyPartIds) {
|
||||
$rel->whereIn('id', $bodyPartIds);
|
||||
});
|
||||
}
|
||||
if (!empty($equipmentIds)) {
|
||||
$q->orWhereHas('equipments', function ($rel) use ($equipmentIds) {
|
||||
$rel->whereIn('id', $equipmentIds);
|
||||
});
|
||||
}
|
||||
})
|
||||
->orderBy('name')
|
||||
->limit(9);
|
||||
|
||||
$similarExercises = $similarQuery->get();
|
||||
|
||||
return view('exercises.show', [
|
||||
'exercise' => $exercise,
|
||||
'similarExercises' => $similarExercises,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user