Отношения Laravel не работают. Метод отношений не вызывается - PullRequest
0 голосов
/ 15 июня 2019

Я пытаюсь сделать отдых API.У меня есть следующие таблицы базы данных

products:
id, title, cat_id

cats:
id, name

Модель продукта:

public function cat(){
   return $this->hasOne('App\Cat');
}

Модель Cat

public function products(){
  return $this->hasMany('App\Product');
}

, когда я пытаюсь получить доступ к продукту, возвращается следующее:

{"id": 1,
"title": "Example",
"cat_id": 1}

Я хочу, чтобы это было

{"id": 1,
"title": "Example",
"cat": {
       "id": 1,
        "name": "Ex"
      }
}

что я здесь не так делаю.пожалуйста помогите

Ответы [ 2 ]

2 голосов
/ 15 июня 2019

HasOne здесь не правильные отношения. Обратное значение HasMany равно BelongsTo:

class Product extends Model
{
    public function cat()
    {
       return $this->belongsTo('App\Cat');
    }
}
1 голос
/ 15 июня 2019

Как упоминал Винсент, вы, вероятно, хотите загружать модель Cat при загрузке модели Product. Строгая загрузка описана здесь в документации Laravel. Так работает

Product::find($id)->with('cat')->get();

загрузит продукт для данного $id и автоматически запросит также отношение Cat.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...