add form error handle in inline edit action
refill the form using last request
This commit is contained in:
parent
ca25210d1c
commit
76b25f3bca
|
@ -142,9 +142,23 @@ abstract class CrudController extends AdminController
|
||||||
|
|
||||||
call_user_func_array($callback, [$builder, $entity]);
|
call_user_func_array($callback, [$builder, $entity]);
|
||||||
|
|
||||||
$form = $builder->getForm();
|
|
||||||
$redirectTo = $request->query->get('redirectTo');
|
$redirectTo = $request->query->get('redirectTo');
|
||||||
|
|
||||||
|
$form = $builder->getForm();
|
||||||
|
$session = $request->getSession();
|
||||||
|
|
||||||
|
$lastRequestId = sprintf('inline_request_%s_%s', get_class($entity), $entity->getId());
|
||||||
|
$lastRequest = $session->get($lastRequestId);
|
||||||
|
|
||||||
|
if ($lastRequest !== null && !$request->isMethod('POST')) {
|
||||||
|
$fakeRequest = Request::create(
|
||||||
|
uri: $request->getUri(),
|
||||||
|
method: 'POST',
|
||||||
|
parameters: [$form->getName() => $lastRequest]
|
||||||
|
);
|
||||||
|
$form->handleRequest($fakeRequest);
|
||||||
|
}
|
||||||
|
|
||||||
if ($request->isMethod('POST')) {
|
if ($request->isMethod('POST')) {
|
||||||
$form->handleRequest($request);
|
$form->handleRequest($request);
|
||||||
|
|
||||||
|
@ -153,13 +167,21 @@ abstract class CrudController extends AdminController
|
||||||
call_user_func_array($beforeUpdate, [$entity, $form, $request]);
|
call_user_func_array($beforeUpdate, [$entity, $form, $request]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$session->remove($lastRequestId);
|
||||||
$entityManager->update($entity);
|
$entityManager->update($entity);
|
||||||
$this->addFlash('success', 'The data has been saved.');
|
$this->addFlash('success', 'The data has been saved.');
|
||||||
} else {
|
|
||||||
$this->addFlash('warning', 'The form is not valid.');
|
return $this->redirect($redirectTo);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->redirect($redirectTo);
|
$session->set($lastRequestId, $request->request->get('form'));
|
||||||
|
$this->addFlash('warning', 'The form is not valid.');
|
||||||
|
|
||||||
|
return $this->redirect(sprintf(
|
||||||
|
'%s?data-modal=%s',
|
||||||
|
$redirectTo,
|
||||||
|
urlencode($request->getUri())
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->render($configuration->getView('inline_edit'), [
|
return $this->render($configuration->getView('inline_edit'), [
|
||||||
|
|
|
@ -204,7 +204,7 @@
|
||||||
entity: item.id,
|
entity: item.id,
|
||||||
context: context,
|
context: context,
|
||||||
label: label,
|
label: label,
|
||||||
redirectTo: app.request.uri,
|
redirectTo: app.request.pathInfo,
|
||||||
}|merge(configuration.pagerouteparams('inline_edit'))) }}" data-modal-create>
|
}|merge(configuration.pagerouteparams('inline_edit'))) }}" data-modal-create>
|
||||||
{{ render_field(item, config, configuration.defaultlocale) }}
|
{{ render_field(item, config, configuration.defaultlocale) }}
|
||||||
</a>
|
</a>
|
||||||
|
|
Loading…
Reference in a new issue