Если вы хотите использовать отношение с именем regions
, просто определите имя метода отношения как regions
:
public function regions() {
return $this->hasMany(...);
}
, чтобы вы могли использовать $this->model->whereId($id)->with('regions.region')
. и ответ будет:
"id": xx,
"first_name": "sahil",
"last_name": "gupta",
"email": "xxxx@yopmail.com",
"role_id": 0,
"regions":[....]
И вы можете сохранить исходный метод отношений userRegion
, чтобы вы все равно могли использовать with('userRegions.region')
в других случаях. и метод регионов вызывает метод отношения:
public function regions() {
return $this->userRegion();
}
Другое решение:
Сброс userRegions
до regions
на Ресурсы API
public function toArray($request)
{
return [
'id' => $this->id,
'first_name' => $this->first_name,
'last_name' => $this->last_name,
'role_id' => $this->role_id,
'regions' => RegionResource::collection($this->userRegions),
...
];
}