Laravels syncWithoutDetaching и дополнительные данные - PullRequest
0 голосов
/ 01 марта 2019

У меня болит гугл, и я не вижу, чтобы кто-нибудь это обсуждал, но у меня есть подозрение, что метод Laravels syncWithoutDetaching() не принимает никаких параметров для дополнительных данных, таких как save(), sync() и attach() делает?

Кто-нибудь знает это?В документации API метод имеет следующие параметры:

array syncWithoutDetaching(Collection|Model|array $ids)

У меня проблемы с добавлением существующих данных в отношения между Гостем и Событием.Мне нужно добавить статус для гостей и того, какое событие они посещают, возможно, посещают или отклонили.

1 Ответ

0 голосов
/ 01 марта 2019

sync() и syncWithoutDetaching() оба не имеют параметра для дополнительных значений, вы должны передать дополнительные значения в виде массива с идентификаторами.


Согласно документы :

Вы можете также передать дополнительные промежуточные значения таблицы с идентификаторами:

$user->roles()->sync([
    1 => ['expires' => true],
    2,
    3
]);


Если вы посмотрите здесь вы можете видеть, что syncWithoutDetaching() просто вызывает sync(), но передает false в качестве второго аргумента.

В вашем случае это будет примерно так:

$event->guests()->syncWithoutDetaching([
    1 => ['attending' => true],
    2 => ['attending' => false]
])
...