Рекомендуемые красноречивые отношения для двух моделей - PullRequest
0 голосов
/ 19 марта 2019

Я заранее извиняюсь, если этот вопрос слишком конкретен, но мне трудно выбрать правильные красноречивые отношения между этими двумя моделями. У меня есть две модели: одна называется «Пакет» (например, туристический пакет), а другая - «Страна». Пакет может иметь только одну страну, а в одной стране может быть несколько пакетов. Это мои отношения:

class Package extends Model
{
    public function country()
    {
        return $this->belongsTo('App\Country');
    } 
}    

// Country
class Country extends Model
{
    public function packages()
    {
        return $this->hasMany('App\Country');
    } 
}    

Это правильные отношения? Когда я использую следующие отношения и хочу получить коллекцию пакетов с информацией о стране, используя код ниже:

$packages = Package::with('country')->get();

Я получаю NULL от ответа стран. Я делаю что-то не так? Спасибо за вашу помощь.

PS: Это моя структура базы данных:

Country:
    `id`
    `iso_code`
    `name`
    `phone_code`

Package:
    `id`
    `title`
    `description`
    `date_from`
    `date_to`
    `price`
    `country_id`

1 Ответ

4 голосов
/ 19 марта 2019

Попробуйте это :

// Package
class Package extends Model
{
    public function country()
    {
        return $this->belongsTo('App\Country');
    } 
}    

// Country
class Country extends Model
{
    public function packages()
    {
        return $this->hasMany('App\Package', 'country_id', 'id');
    } 
}
...