Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 02-05-2014 18:04:40

pconrad
Membre
Date d'inscription: 29-04-2014
Messages: 20

[Résolu] $this->url me laisse perplexe....

Bonjour,

J'essai de diriger un formulaire vers une action du controller :

Code:

[lang=php]$form->setAttribute('action',$this->url('user',array('action' => 'add')));

Celui-ci renvoi juste '/user'

Les routes semblent correctement définies. Ca fait 2/3 fois que j'essai, et je finis par abandonner et marquer l'url directement.

Il me semble utiliser $this->url correctement.

Je sèche là !

Dernière modification par pconrad (12-05-2014 10:18:48)

Hors ligne

 

#2 02-05-2014 23:14:42

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [Résolu] $this->url me laisse perplexe....

Bonjour,

On peut avoir une extrait conséquent ou l'intégralité de ta conf de routes ?

Là comme ça je dirais que la route user n'a pas de sous route ou de paramètre pour mettre une action add...

Hors ligne

 

#3 05-05-2014 08:59:51

flobrflo
Membre
Lieu: Marseille
Date d'inscription: 26-04-2013
Messages: 376

Re: [Résolu] $this->url me laisse perplexe....

Hello,
tu devrais faire une route child et enlever action smile
De même j'imagine que tu devrais avoir une route user/del et user/update ^^

Hors ligne

 

#4 11-05-2014 09:53:00

pconrad
Membre
Date d'inscription: 29-04-2014
Messages: 20

Re: [Résolu] $this->url me laisse perplexe....

Bonjour,

Désolé, j'avais des soucis avec Oracle sur un autre projet....

Voici mes routes :

Code:

[lang=php]        'router' => array (
                'routes' => array (
                        'user' => array (
                                'type' => 'Literal',
                                'options' => array (
                                        // Change this to something specific to your module
                                        'route' => '/user',
                                        'defaults' => array (
                                                // Change this value to reflect the namespace in which
                                                // the controllers for your module are found
                                                '__NAMESPACE__' => 'User\Controller',
                                                'controller' => 'User',
                                                'action' => 'index' 
                                        ) 
                                ),
                                'may_terminate' => true,
                                'child_routes' => array (
                                        'add' => array (
                                                'type' => 'Literal',
                                                'options' => array (
                                                        'route' => '/add',
                                                        'defaults' => array (
                                                                'action' => 'add' 
                                                        ) 
                                                ),
                                                'verb' => 'get,post' 
                                        ),
                                        'edit' => array (
                                                'type' => 'Segment',
                                                'options' => array (
                                                        'route' => '/edit/:id',
                                                        'constraints' => array (
                                                                'id' => '[1..9][0..9]*' 
                                                        ),
                                                        'defaults' => array (
                                                                'action' => 'edit' 
                                                        ) 
                                                ),
                                                'verb' => 'get,post' 
                                        ),
                                        'login' => array (
                                                'type' => 'Literal',
                                                'options' => array (
                                                        'route' => '/login',
                                                        'defaults' => array (
                                                                'action' => 'login' 
                                                        ) 
                                                ),
                                                'verb' => 'get,post'
                                        ),
                                        'logout' => array (
                                                'type' => 'Literal',
                                                'options' => array (
                                                        'route' => '/logout',
                                                        'defaults' => array (
                                                                'action' => 'logout'
                                                        )
                                                ),
                                                'verb' => 'get,post'
                                        ),                                        
                                        'towns' => array (
                                                'type' => 'Literal',
                                                'options' => array (
                                                        'route' => '/towns',
                                                        'defaults' => array (
                                                                '__NAMESPACE__' => 'User\Controller',
                                                                'controller' => 'Json',                                                                
                                                                'action' => 'towns'
                                                        )
                                                ),
                                                'verb' => 'get,post'
                                        )                                        
                                )
                                 
                        ) 
                ) 
        ),

Cela ne me semble pas étrange par rapport à d'autres exemples.

Hors ligne

 

#5 12-05-2014 08:48:10

flobrflo
Membre
Lieu: Marseille
Date d'inscription: 26-04-2013
Messages: 376

Re: [Résolu] $this->url me laisse perplexe....

oh, alors en fait tu appel mal ta route:
la tu appel la route user avec un paramètre action ce qui n'est pas possible puisque ta route est littérale donc sans paramètre justement.

il faut que tu appel la route add qui est ta route child :

Code:

[lang=php]
$form->setAttribute('action',$this->url('user/add'));

Hors ligne

 

#6 12-05-2014 10:18:32

pconrad
Membre
Date d'inscription: 29-04-2014
Messages: 20

Re: [Résolu] $this->url me laisse perplexe....

flobrflo a écrit:

oh, alors en fait tu appel mal ta route:
la tu appel la route user avec un paramètre action ce qui n'est pas possible puisque ta route est littérale donc sans paramètre justement.

il faut que tu appel la route add qui est ta route child :

Code:

[lang=php]
$form->setAttribute('action',$this->url('user/add'));

Ok, donc dans le cas de route 'Litteral', on ne met pas d'action, mais l'url directement. Donc ce que j'ai fait pour corriger est bon.

Merci.

Hors ligne

 

#7 12-05-2014 10:31:56

flobrflo
Membre
Lieu: Marseille
Date d'inscription: 26-04-2013
Messages: 376

Re: [Résolu] $this->url me laisse perplexe....

enfait tu ne met pas l'url directement, tu met les noms de tes routes.
Dans ton cas il se trouve que ça correspond à l'url ^^

Code:

[lang=php]
$form->setAttribute('action',$this->url('baseroute/childroute/childchildroute...'));

EDIT :
si tu veux faire la même chose pour edit par exemple, ça donnerait ceci:

Code:

[lang=php]
$form->setAttribute('action',$this->url('user/edit',array('id' =>$id)));
//$form->setAttribute('action',$this->url('route/childroute',array('name_param' =>'value_param')));

Dernière modification par flobrflo (12-05-2014 10:34:19)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages