Laravel 5.3, у меня есть 2 модели:
Пользователь:
public function newFunctions()
{
return $this
->belongsToMany('App\NewFunctions', 'user_newfunctions')
->withPivot(['function_count', 'days_count']);
}
NewFunctions:
public function users()
{
return $this
->belongsToMany('App\User', 'user_newfunctions', 'new_function_id', 'user_id')
->withPivot(['function_count', 'days_count']);
}
Теперь я могу сохранить новые данные для пользователя с помощью этого:
$user = User::findOrFail($id);
$user->name = $request->input('name');
$user->save();
Но теперь мне нужно обновить некоторые значения сводной таблицы. сводная таблица выглядит так:
user_id | new_functions_id | function_count | days_count
---------------------------------------------------------
814 | 1 | 5 |2019-07-19 12:26:19
814 | 3 | 7 |2019-07-19 12:26:19
У меня более 1 строки на user_id
. Я пытался использовать:
$user
->newFunctions()
->sync([
'days_count' => $test_date,
'function_count' => $test_int_number
]);
Но я получаю сообщение об ошибке:
Неверный тип смещения
потому что пытается обновить с этим:
array(
'records' => array(
'days_count' => object(Carbon), 'function_count' => '66'),
'results' => array(),
'id' => object(Carbon),
'attributes' => array()
)
)
in BelongsToMany.php
Итак:
- Как я могу обновить значения для каждого user_id в сводной таблице?
- А как использовать
sync
для обновления только 'function_count' и 'days_count'? они приходят из запроса.