У меня следующая ситуация:Laravel 5,3: hasManyThrough отношения
location
id - integer
network_id - integer (FK)
network
id - integer
owner_id - integer (FK)
owner
id - integer
name - string
У меня есть Красноречивый модель для моих данных о местоположении. Теперь, что я хочу сделать, создается 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()
];
}
}
У меня нет ошибки, но модель не возвращает ни одного владельца, а просто пустой массив.
Может ли кто-нибудь помочь мне создать отношения между этими моделями, используя Laravel's Eloquent? Я использую Laravel 5.3.
Пожалуйста, покажите нам, что вы пробовали и какие проблемы возникли. – Adrenaxus