Я пробую новый способ обновления событий (не событий Laravel, думайте как вечеринка или кулинария) для моего сервера.Моя идея состояла в том, чтобы отправить Событие с обновленной информацией в контроллер через аргументы запроса.Это обновленное событие будет иметь тот же идентификатор, что и событие, для которого оно является обновлением.Примером может служить вечеринка по случаю дня рождения, начинающаяся в 8:00 вечера, уже сохраненная в базе данных.Я передаю обновленную версию этого события с тем же идентификатором, но время начала 9:00 вечера.Моя цель - избежать перечисления всех атрибутов участника в контроллере обновлений.Проблема, с которой я столкнулся, заключается в том, что, когда я сохраняю обновленное событие, я сталкиваюсь с нарушением повторяющихся записейСобытия имеют одинаковый идентификатор, поэтому я немного запутался, почему не просто выполнить обновление.Я предполагаю, что это что-то внутри способа, которым Laravel обрабатывает идентификаторы объектов при обновлении БД.Любая помощь или предложения?Код ниже.
Контроллер
public function update() {
//Get updated event from request
$event = request()->event;
//Ensure current user created event
if(Auth::user()->createdEvent($event)) {
$event->save();
return Constants::EVENT_UPDATED_SUCCESSFULLY;
}
return Constants::EVENT_FAILED_TO_UPDATE;
}
Тест
public function testUpdate() {
//User for creating events
$user = factory(User::class)->create();
//Create base event and save to db
$event = factory(Event::class)->create([
'user_id' => $user->id
]);
//Matching event with all modified attributes
$modifiedEvent = factory(Event::class)->make([
'id' => $event->id,
'user_id' => $user->id
]);
$res = $this->call('POST', 'api/event/update', [
'event' => $modifiedEvent,
'api_token' => $user->api_token
]);
............
}