Я использую Symfony 4.2.3.
У меня есть объект с именем Article
, который имеет среди прочего следующие поля:
- версия
- versionUserId
- versionTimestamp
с * @Assert\NotNull
проверочным знаком.
Я хочу установить значение этих полей вручную в контроллере, например. с помощью:
$article->setVersionUserId($user);
$article->setVersionTimestamp(new \DateTime());
$article->setVersion(1);
Однако, как я понимаю $form->isValid()
, проверяет объект, а не форму. Таким образом, чтобы предотвратить This value should not be null.
ошибку проверки , я должен установить значение этих полей перед проверкой формы. Как этого добиться?
Мой контроллер:
public function article_edit($action, Request $request)
{
$form = $this->createForm(ArticleType::class);
// Customize the form
$form->remove("versionTimestamp");
$form->remove("versionUserId");
$form->remove("version");
$form->add('save', SubmitType::class, ['label' => 'Zapisz']);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$article = $form->getData();
/*
$article->setVersionUserId($user);
$article->setVersionTimestamp(new \DateTime());
$article->setVersion(1);
*/
/.../