Я создал приложение rest-api, но если я хочу обновить сущность, Symfony изменяет всю строку. Таким образом, поля, которые не указаны в GET-запросе, также изменяются и устанавливаются в NULL.
Я просто хочу обновить поля, содержащиеся в GET-запросе.
public function update(int $id, Request $request, UserPasswordEncoderInterface $passwordEncoder) {
$account = $this->repository->find($id);
if ($account == null) {
throw new HttpException(Response::HTTP_NOT_FOUND);
}
$form = $this->createForm(UserType::class, $account);
$form->submit($request->request->all());
if ($form->isSubmitted() && $form->isValid()):
$account->setPassword(
$passwordEncoder->encodePassword(
$account,
$form->get('password')->getData()
)
);
$em = $this->getDoctrine()->getManager();
try {
$em->flush();
} catch (\Exception $e) {
throw new HttpException(Response::HTTP_BAD_REQUEST, $e->getMessage());
}
return $this->view(null, Response::HTTP_NO_CONTENT);
else:
return $this->view($form, Response::HTTP_BAD_REQUEST);
endif;
}