$user->machine()->attach($user->id, ['machine_id' => $machines]);
Это не правильно.У вас уже есть $user
, и вы хотите прикрепить определенный machine
, поэтому вам нужно передать этот идентификатор machines()->attach()
:
$user = User::create($validatedUserData);
$machine = ...;
// Not sure how you're getting `$machines`, and it should be singular `$machine`
$user->machines()->attach($machine->id, [...]);
// Replace `[...]` with any additional columns.
Обратите внимание, что если вы хотите прикрепить несколько, вы используетеattach()
или sync()
:
$user->machines()->attach($machines);
$user->machines()->sync($machines);
attach()
лучше всего использовать, если к вам прикреплены существующие записи, так как sync()
будет detach()
, затем attach()
ids
, который вы передаете,Кроме того, если вам нужны дополнительные столбцы, настройте $machines
, чтобы он был ассоциативным массивом:
$machines = [
1,
2 => ["additional" => "column"],
3
]; // Etc. etc.