我正在尝试制作REST API。我有以下数据库表
products:
id, title, cat_id
cats:
id, name
产品型号:
public function cat(){
return $this->hasOne('App\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"
}
}
我在这里做错了什么。请帮助
答案 0 :(得分:2)
HasOne
在这里不是正确的关系。 HasMany
的倒数是BelongsTo
:
class Product extends Model
{
public function cat()
{
return $this->belongsTo('App\Cat');
}
}
答案 1 :(得分:1)
正如文森特(Vincent)所述,您可能想在加载产品模型时急于加载Cat模型。在Laravel文档中here描述了热切的加载。因此运行
Product::find($id)->with('cat')->get();
将为给定的$id
加载产品,并自动查询Cat关系。