Для такого рода вещей я не думаю, что вы можете напрямую использовать отношения на модели Pivot
из-за того, что laravel структурирует многие из многих запросов.
Одним из способов обойти это было бы определение отношения hasMany
между One
и OneTwo
, чтобы вы могли легко применять ограничения, но это не означает, что вам придется отказаться от существующегоотношения (вы просто используете это отношение для определения объема вашего запроса), например
Одна модель
public function oneTwo()
{
return $this-hasMany(OneTwo::class);
}
Таким образом, вы можете структурировать свой запрос следующим образом:
$ones = One::with('twos')->whereHas('oneTwos.three', function ($q) {
$q->where('value', 'yes');
})->get();
В приведенном выше примере я предполагаю, что ваши отношения называются three
, поскольку это отношения hasOne
.Если это threes
, вам просто нужно изменить отношение whereHas
на 'oneTwos.threes'
.