Bonjour,
J'ai un soucis avec ma redirection suite a une erreur sur le formulaire
voici mes routes
<route id="product.registration.customer.create.view" path="/warranty-registration" methods="get">
<!--default key="_controller">Front\Controller\CustomerController::viewRegisterAction</default-->
<default key="_controller">ProductRegistration\Controller\newAccountProductRegistration::viewRegisterAction</default>
</route>
<route id="product.registration.customer.create.process" path="/warranty-registration" methods="post">
<default key="_controller">Front\Controller\CustomerController::createAction</default>
<default key="_view">register</default>
</route>
<route id="product.registration.add.view" path="/warranty-registration/add" methods="get">
<default key="_controller">ProductRegistration\Controller\addProductRegistration::viewAddProductRegistrationAction</default>
</route>
<route id="product.registration.add.view.create.process" path="/warranty-registration/add" methods="post">
<default key="_controller">ProductRegistration\Controller\addProductRegistration::createAction</default>
<default key="_view">add-product-warranty-registration</default>
</route>
suivant que le client est connecte ou pas je le redirige vers l'un ou l'autre formulaire
pour l'appel de la route /warranty-registration
protected $useFallbackTemplate = true;
/**
* Display the add-product-warranty-registration template or register template if no customer logged
*/
public function viewRegisterAction()
{
if ($this->getSecurityContext()->hasCustomerUser()) {
// Redirect to home page
return $this->render("add-product-warranty-registration");
}
return $this->render("register");
}
pour l'appel de la route /warranty-registration/add
protected $useFallbackTemplate = true;
/**
* Display the add-product-warranty-registration template or login template if no customer logged
*/
public function viewAddProductRegistrationAction()
{
if ($this->getSecurityContext()->hasCustomerUser()) {
// Redirect to home page
return $this->render("add-product-warranty-registration");
}
return $this->render("login");
}
le soucis est sur le formulaire : add-product-warranty-registration cette page se trouve dans mon module
c'est pour cela que j'ai rajoute la ligne protected $useFallbackTemplate = true;
et field='error_url'
{hook name="warranty-registration.top"}
{form name="product.registration.form"}
<form id="form-register" class="form-horizontal" action="{url path="/warranty-registration/add"}" method="post">
{form_field form=$form field='success_url'}
<input type="hidden" name="{$name}" value="{url path='/account'}" /> {* the url the user is redirected to on registration success *}
{/form_field}
{form_field form=$form field='error_url'}
<input type="hidden" name="{$name}" value="{url path='/warranty-registration'}" />
{/form_field}
{form_field form=$form field='error_message'}
<input type="hidden" name="{$name}" value="{intl l="missing or invalid data"}" />
{/form_field}
{form_hidden_fields form=$form}
{if $form_error}<div class="alert alert-danger">{$form_error_message}</div>{/if}
{hook name="warranty-registration.form-top"}
{hook name="warranty-registration.form-bottom"}
<div class="form-group group-btn">
<div class="control-btn">
<button type="submit" class="btn btn-register">{intl l="Register"}</button>
</div>
</div><!--/.form-group-->
</form>
{/form}
j'ai une contraire sur le numero de serie
lors de mes tests avec un numero de serie existant
la contrainte est bien remonte
public function createAction(){
$this->checkAuth();
$addProductCreate = $this->createForm(ProductRegistration::PRODUCT_REGISTRATION_ADD_PRODUCT);
$message = false;
try {
$customer = $this->getSecurityContext()->getCustomerUser();
$createForm = $this->validateForm($addProductCreate);
.......
$route = '/account';
$response = RedirectResponse::create(URL::getInstance()->absoluteUrl($route));
} catch (FormValidationException $e) {
$message = $this->getTranslator()->trans("Please check your input: %s", ['%s' => $e->getMessage()], ProductRegistration::DOMAIN_NAME);
} catch (\Exception $e) {
$message = $this->getTranslator()->trans("Sorry, an error occured: %s", ['%s' => $e->getMessage()], ProductRegistration::DOMAIN_NAME);
}
if (null !== $message) {
\Thelia\Log\Tlog::getInstance()->error(sprintf("Error during add product warranty registration process : %s", $message));
$addProductCreate->setErrorMessage($message);
$this->getParserContext()
->addForm($addProductCreate)
->setGeneralError($message)
;
// Redirect to error URL if defined
if ($addProductCreate->hasErrorUrl()) {
return $this->generateErrorRedirect($addProductCreate);
}
}
}
mais lorsqu'il me raffiche la page
je n'ai que cela le texte sous le champ serial number n'apparait pas
une idee ?