РЕШЕНО
Поскольку я много боролся с подходом к запросу, я решил использовать функцию привязки модели hasManyThrough
source
Я определил 3 новые функции в моей модели и вызвал их в моей переменной (с) теперь у меня есть желаемые данные.
Код
Model
class ZoneRegion extends Model
{
protected $fillable = [
'name',
];
public function areas(){
return $this->hasMany(Area::class, 'zone_id', 'id');
}
public function segments()
{
return $this->hasManyThrough(Segment::class, HthreeRegion::class, 'area_id', 'hthree_id');
}
public function links()
{
return $this->hasManyThrough(Link::class, Segment::class, 'hthree_id', 'segment_id');
}
public function cabels()
{
return $this->hasManyThrough(CableType::class, Link::class, 'cable_id', 'id');
}
}
Controller
$zones = ZoneRegion::orderby('id', 'desc')->with(['areas', 'segments', 'links', 'cabels'])->get();
И это делает свое дело, теперь все, что мне нужно сделать, это получить length
моих данных (JS подход) или count()
моих данных (Blade подход)
Надеюсь, что это может помочь и другим.