【发布时间】:2018-09-24 10:16:00
【问题描述】:
我想将category_id 附加到seat 集合中,但我需要使用预先加载或关系来填充它。
我哪里做错了?
座椅型号:
class Seat extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
public $appends = ['category_id'];
protected $fillable = [
'seat_name',
'seat_url',
'logo_src',
];
public function getCategoryIdAttribute()
{
return $this->hasMany(AdSeatCategories::class);
}
}
当我运行Seat::all(); 时,我得到{} for category_id 作为响应。
响应示例:
{
"id": 95,
"seat_name": "gtest",
"seat_url": "http://ooop.com",
"logo_src": null,
"category_id": {},
},
【问题讨论】:
-
首先,您在
accessor中定义relationship,这些需要分开。其次,你们的关系表明seat可以有很多categories。你们的关系是one to one还是one to many? -
了解您的预期关系很重要,因为这将决定您是返回类别数组还是单个类别 ID。
标签: php mysql laravel eloquent eager-loading