Laravel - отношения - PullRequest
       0

Laravel - отношения

0 голосов
/ 10 апреля 2020

Я пытаюсь выяснить, как я могу получить вложенные отношения, но без какого-либо успеха.

Модальные: тренировки

public static function getWorkout($workout_id = null)
{
  if ($workout_id) {
     return Workout::whereId($workout_id)->with('exercises.sets')->first();
  }

  return [];
}

public function exercises()
{
   return $this->belongsToMany('App\Models\Exercise');
)

Модальные: упражнения

public function sets()
{
   return $this->hasMany('App\Models\Set');
}

Это решение дает мне все наборы на основе "exercise_id". Мне нужно получить только наборы внутри тренировки.

Если я сделаю это, это сработает, теперь проблема в том, как мне получить идентификатор тренировки, чтобы пройти. Я также попытался поместить это отношение в модель тренировки, но тогда ответ наборов выйдет за пределы массива упражнений.

public function sets()
{
   return $this->hasMany('App\Models\Set')->where('workout_id', 5);
}

1 Ответ

2 голосов
/ 10 апреля 2020

Попробуйте следующий фрагмент, где я задаю условие для активной загрузки.

public static function getWorkout($workout_id = null)
{
  if ($workout_id) {
    return Workout::whereId($workout_id)->with(['exercises.sets' => function($query) use($workout_id)
    {
        $query->where('workout_id', $workout_id);

    }])->first();
  }

  return [];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...