Я работаю над небольшим проектом, используя последнюю версию Laravel, у меня есть две модели Building и Apartment, и я создал связь между этими двумя моделями, как вы можете видеть внизу.
Я бы хотел хотел бы получить результат иерархическим способом, вот так.
building_number x
apartment_number x
apartment_number y
apartment_number z
building_number y
apartment_number x
apartment_number y
apartment_number z
Это мои модели:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use App\Apartment;
class Building extends Model
{
protected $guarded = [];
public function apartment(){
return $this->hasMany(Apartment::class);
}
}
//
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use App\Building;
class Apartment extends Model
{
protected $guarded = [];
public function building(){
return $this->belongsTo(Building::class);
}
}
Моя функция контроллера
public function index()
{
$apartments = Apartment::with('building')->get();
return response()->json($apartments);
}
мой результат сейчас:
[
{
"id":1,
"apartment_number":"1",
"building_id":1,
"created_at":"2020-08-03T08:46:36.000000Z",
"updated_at":"2020-08-03T08:46:36.000000Z",
"building":{
"id":1,
"building_number":"1"
}
}
]