-1
votes

Symfony 4: Rediriger avec les paramètres de poste lorsque l'enregistrement infructueux

Je dois maintenir un projet dans Symfony 4 Code>. Malheureusement, je suis nouveau chez Symfony et de plus, il me semble que ce projet avait du projet. Le problème est qu'après des champs de formulaire d'enregistrement non réussi ne sont pas remplis et de devenir vide.

SO P>

1) J'ai accountrcontroller.php code> avec deux méthodes 2) J'ai inscritpage code> qui rend simplement gabarit de brindille (avec formulaire). P> xxx pré>

3) J'ai une libéralisation. À ce formulaire d'action, les données sont affichées. P>

return $this->redirect($this->referer);


5 commentaires

Pourquoi n'utilisez-vous pas une méthode pour afficher et traiter le formulaire afin de ne pas avoir besoin de rediriger sur une défaillance (et de permettre ainsi d'accéder aux données soumises lors de la montrage du formulaire)?


Suivez les nombreux exemples dans les documents et ne vous redirrez tout simplement pas des erreurs.


@xabbuh Ce n'est pas mon code en fait, je dois maintenir le code écrit non par moi et je dois faire face aux problèmes aussi vite que je peux sans réécrire tout. Parce que je n'ai pas le temps de réécrire tout le code écrit dans le cadre que je ne travaille pas quotidiennement avec.


@Cerad Si je ne redirige pas des erreurs, je ne peux pas retourner à la page d'origine (car deux actions différentes sont utilisées pour une raison quelconque - d'abord à afficher la page, deuxième - pour traiter avec la poste).


Dans cette affaire plutôt triste, l'approche la plus directe serait de cacher les données de la session comme la réponse ci-dessous suggère. Si vous utilisez réellement la framework Symfony, peut-être peut-être Demande de demande pourrait aider. Mais honnêtement, je ne vois pas pourquoi vous ne pouvez pas simplement ajuster le code existant puisque vous semblez essayer de mettre en œuvre de nouvelles exigences.


3 Réponses :


1
votes

Je vous suggérerais d'utiliser Symfony FormType à cette fin. Il gère déjà les choses que vous voulez accomplir! Mais si vous préférez toujours faire tout le travail par vous-même:

Il n'y a pas de post redirigation! Vous pouvez: P>

a) strong> Redirection avec Get Paramètres (et modifier votre itinéraire vers la méthode d'obtention); p>

b) strong> Enregistrez les données en session avant de rediriger et de le lire ensuite, comme: P>

// Save to session before redirect.
$session = $this->getRequest()->getSession();
$session->set('your_data', $_POST);

// Get from session after redirect.
$session = $this->getRequest()->getSession();
$data = $session->get('your_data');


0 commentaires

0
votes

Je suggérerais d'utiliser Form Builder.Parce que vous maintiendrez des données remplies pendant la validation de formulaire. Vous obtiendrez tous les détails de Symfony Site Web :


1 commentaires

Ce n'est pas une option. Le projet donné utilise déjà une approche non-formulaire et je ne suis pas celui qui l'a décidé. J'ai besoin d'une autre approche.



0
votes

de Symfony 4.1 Vous pouvez utiliser le code actuel 307 ou 308 pour rediriger avec demande. Voici le doc: https://symfony.com/blog/ Nouvelle in-symfony-4-1-307-and-308-redirections

Exemple: p>

return $this->redirectAction('route', array(
    'request' => $request,
), 307);


0 commentaires