У меня есть две модели под названием «Позиция» и «Событие», они имеют отношения многие ко многим.
<?php
class Event extends Model
{
protected $fillable = [
'name', 'opta_id'
];
public function positions() {
return $this->belongsToMany(Position::class);
}
}
class Position extends Model
{
protected $fillable = [
'name', 'short_name'
];
public function events() {
return $this->belongsToMany(Event::class);
}
}
Каждый event
должен иметь сводную запись для каждого position
, находящегося в данный момент в базе данных, исключений нет. Поэтому каждый раз, когда пользователь создает новый event
, я хочу создать сводную запись для каждого существующего position
.
Я изо всех сил пытаюсь понять это, используя документацию и ТАК. Я мог бы использовать sync () или attach () для создания соединений, явно назвав идентификаторы всех позиций в БД. В методе EventController
store
:
$data = $request->all();
$event = Event::create($data);
$event->positions()->sync([1, 22, 34, 167]);
Но чтобы это работало, мне сначала нужно было бы получить все записи из таблицы positions
, отформатировать их в массив идентификаторов и передать их этому методу. Есть ли какой-нибудь встроенный или канонический способ сделать это?