У меня есть собственный класс, который заполняет параметры действия контроллера, основываясь на подсказке параметра.Это хорошо работает для документов (используя общедоступные свойства и сеттеры).
Моя цель состоит в том, чтобы сделать контроллер простым:
function updateAction(Article $article)
{
$dm = new DocumentManager(); // code elsewhere
$dm->merge($article);
$dm->flush();
return $this->redirect('/article/' . $article->getId());
}
Проблема в том, что входные данные, предоставляющие поля для программного заполнения класса Article, не содержат all свойств класса Article (возможно, форма редактирования содержит только заголовок и контент, но игнорирует автора и т. д.).
Я надеялся, что наличие идентификатора позволит аккуратно объединить документ с тем, что в настоящее время находится в базе данных.Однако любые поля, которые отсутствуют во время слияния, будут удалены из документа в базе данных.
Есть ли способ обновить документ таким образом, чтобы обновлялись только те поля, которые присутствуют (я думаю, не нулевые)?