我具有以下多对多关系模型:
class Event extends Model
{
public function positions() {
return $this->belongsToMany(Position::class, 'position_events');
}
}
class Position extends Model
{
public function events() {
return $this->belongsToMany(Event::class, 'position_events');
}
}
class PositionEvent extends Model
{
public function position() {
return $this->hasOne(Position::class, 'id', 'position_id');
}
public function event() {
return $this->hasOne(Event::class, 'id', 'event_id');
}
}
position_events
表如下:
id | event_id | position_id
如果$event
是Event
的实例,我可以得到以下相关职位:
$event->positions;
这给我每个相关职位以下的东西:
{"id":4,"name":"Striker","created_at":"2019-04-02 16:19:57","updated_at":"2019-04-02 16:19:57","pivot":{"event_id":27,"position_id":4}}
注意pivot
元素。它仅具有event_id
和position_id
作为属性,它们是position_events
表中的列。如何获得该表中的id
列?
答案 0 :(得分:0)
您是否尝试过使用withPivot()
,例如:
$this->belongsToMany(Position::class, 'position_events')->withPivot('id');