将特定的相关字段添加到响应中
Add specific related field to response
我有一个带有动作的控制器:
public function getCities(): JsonResponse
{
return response()->json([City::all()], 200);
}
实体城市与国家有关。
如何为结果 City::all() 中的每一项添加 country.id?
您应该查看文档:https://laravel.com/docs/8.x/eloquent-relationships
最好的方法是使用预先加载,使用:
City::with('country')->get();
然后,您可以访问国家 ID,如:
$city->country->id;
Laravel 具有创建虚拟属性的惊人功能。为此,将这些行添加到您的城市模型中:
NOTIFICATION: I assume you have and CountryCity model
public $appends = ['country_id'];
public function getCountryIdAttribute()
{
$country = CountryCity::where('city_id',$this->id)
if($country){
return $country->id;
}
return null;
}
我有一个带有动作的控制器:
public function getCities(): JsonResponse
{
return response()->json([City::all()], 200);
}
实体城市与国家有关。
如何为结果 City::all() 中的每一项添加 country.id?
您应该查看文档:https://laravel.com/docs/8.x/eloquent-relationships
最好的方法是使用预先加载,使用:
City::with('country')->get();
然后,您可以访问国家 ID,如:
$city->country->id;
Laravel 具有创建虚拟属性的惊人功能。为此,将这些行添加到您的城市模型中:
NOTIFICATION: I assume you have and CountryCity model
public $appends = ['country_id'];
public function getCountryIdAttribute()
{
$country = CountryCity::where('city_id',$this->id)
if($country){
return $country->id;
}
return null;
}