У меня следующая ситуация:
location
id - integer
network_id - integer (FK)
network
id - integer
owner_id - integer (FK)
owner
id - integer
name - string
У меня есть модель Eloquent для данных о моем местоположении. Теперь я хочу создать RESTful API, где я могу получать данные о владельце через сетевую модель.
Я пытался использовать hasManyThrough
безуспешно. Модель имеет следующие отношения;
Network - Location = One to Many
Owner - network = One to One
Так много локаций принадлежит одной сети, и у каждой сети один владелец. Это всегда так.
Я пробовал следующее.
class Location extends Model
{
public function owner() {
return $this->hasManyThrough('App\Owner', 'App\Network, 'id', 'id);
}
}
Затем верните модель в мой ресурс.
class LocationController extends Controller
{
public function index() {
return [
'data' => Location::with('network', 'owner')->take($limit)->take($offset)->get()
];
}
}
Я не получаю ошибки, но модель не возвращает владельца, а просто пустой массив.
Может ли кто-нибудь помочь мне создать отношения между этими моделями, используя Eloquent Laravel? Я использую Ларавель 5.3.