Problème \d+ ("" given) Symfony2

Pépito -  
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai cette erreur qui s'affiche :

"An exception has been thrown during the rendering of a template ("Parameter "client_id" for route "app_client_remove" must match "\d+" ("" given) to generate a corresponding URL.") in ::client/form.html.twig"

J'aimerai savoir si quelqu'un a déjà eu cette erreur :/

Merci d'avance

2 réponses

Utilisateur anonyme
 
Salut, cela veut dire que ta route attend un entier en paramètre et tu lui donnes une chaine de caractères vide. Avec du code ce sera plus facile de t'aider. Puisque l'erreur concerne la génération d'une vue, je pense mais je peux me tromper, que c'est lorsque tu génere une URL avec twig path('route') ou un render(controller...


׺°"~'"°º×]|I{*------» LÖBÖTÖ «------*}I|[׺°"~'"°º×
2
Pépito
 
Salut,

Je me doutais que ça venait, mais je ne vois vraiment pas l'erreur :/

Voici mon code qui est dans ma vue :
<div class="actions">
{{ macro.btnRemoveItem('app_client_remove', {'site_id':site.id, 'site_slug':site.slug, 'client_id':client.id, 'client_slug':client.slug}, 'removeClient') }}
</div>
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566 > Pépito
 
Et dans la définition de ta macro, il y a quoi ?
0
Pépito
 
{% macro btnRemoveItem(route, params = {}, title = '') -%}
    {% if hasUserAccessToRoute(app.user, route) %}
        <a href="{{ path(route, params) }}" rel="nofollow" target="_blank" class="btn btn-circle btn-icon-only btn-danger" {% if title != '' %}data-original-title="{{ title | trans | capitalize }}" data-placement="left" {% endif %}><i class="fa fa-trash"></i></a>
    {% endif %}
{%- endmacro %}
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566 > Pépito
 
un de tes paramètres est probablement vide, soit site_id, soit client_id, vérifie bien ça. Vérifie également le nommage de tes paramètres...
0
Pépito
 
C'est à dire que j'utilise cette macro dans mon form, qui sert a créer et à éditer. le editAction fonctionne alors que le problème survient à l'ajout :/ Enfin cette erreur s'affiche seulement lors de l'ajout ..
0
Utilisateur anonyme
 
L'erreur vient de client_id, si ton form concerne un client, c'est normal que lors de sa création il n'est pas encore de id.
0
Pépito
 
Oui ça je sais bien, mais j'utilise ce form également pour la modification du coup je voulais voir si on pouvait mettre une condition pour que lorsqu'on prend cette route pour l'ajout il n'affiche pas le client_id et si on prend la route de l'édition il l'afiiche, ou quelque chose comme ça ? :/
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
Tu peux toujours définir ton paramètre comme facultatif au niveau de ta route, puis faire une gestion différente dans ton contrôleur si ce paramètre est absent...
0
Pépito > ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention  
 
Est ce que tu aurais un exemple à me soumettre pour le définir en facultatif au niveau de ta route et dans mon contrôleur s'il te plait ?
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
/**
 * @Route("/blog/{page}", name="blog_list", requirements={"page": "\d+"})
 */
public function listAction($page = null)
{
	if ($page === null) {
		// ce que tu fais dans ce cas...
	}
	// ...
}
0