Laravel,由父母和孩子获得结果

时间:2020-08-03 18:49:28

标签: laravel

我正在使用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"
      }
   }
]

1 个答案:

答案 0 :(得分:3)

当您希望在该层次结构中进行操作时,只需进行相反操作即可。您在哪里查询建筑物并包括所有基础公寓。

BMI_CONVERSION_FACTOR = 703

bmi = case measurement_system.downcase
when 'i'
  BMI_CONVERSION_FACTOR * (w / (h**2))
when 'm'
  w / (h**2)
else
  raise "Unknown measurement system: #{measurement_system}"
end