我有国家模型和州模型。只有有州的国家才能显示州或返回[];
我想一击将其返回到响应对象中,但是我无法全神贯注地获取正在查询中运行的当前国家/地区的ID,我现在才构建了此代码:
return response()->responseObject([
'code' => 200,
'status' => true,
'message' => 'Retrieved List of Available Countries',
'data' => Country::where('allow_registration', Country::REGISTRATION_ALLOWED)->get([
'id',
'name',
'iso',
'iso3',
'prefix',
'states' => function($query){}
])
]);
还有另一个函数正在等待:
public static function getStates($id)
{
$states = State::where('country_id', $id);
return $states ? $states : [];
}
我正在接近这个权利吗?为了获得当前的国家/地区ID,我必须在子查询功能中添加什么?还是我解决了这个错误,并且有一种更雄辩的方式实施?
答案 0 :(得分:0)
在您的country
模型中创建states
关系
$this->hasMany(State::class);
然后您可以按以下方式获取所有具有其州的国家/地区:
Country::with('states')->get();