laravel 向响应添加特定的相关字段

xtfmy6hx  于 2023-01-06  发布在  其他
关注(0)|答案(2)|浏览(121)

我有一个控制器的动作:

public function getCities(): JsonResponse
{
    return response()->json([City::all()], 200);
}

实体城市与国家/地区有关系。
如何country.id为结果City::all()中的每个项目添加www.example.com?

3bygqnnd

3bygqnnd1#

Laravel有惊人的功能来创建虚拟属性。添加这些行到您的城市模型:
第一个月

public $appends = ['country_id'];

public function getCountryIdAttribute()
{
    $country = CountryCity::where('city_id',$this->id)
    if($country){
        return $country->id;
    }

    return null;
}
3pvhb19x

3pvhb19x2#

您应该查看文档:https://laravel.com/docs/8.x/eloquent-relationships
最好的方法是使用即时加载,方法是:

City::with('country')->get();

然后,您可以访问国家ID如下:

$city->country->id;

相关问题