У меня есть следующие модели в отношении многие ко многим:
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
из этой таблицы?