Question

Juste mis à jour de 1,3 à 2.0.3 et je suis en train de migrer tous les changements. Je remarque que la ligne suivante

echo $this->Html->link('Quote', array('controller'=>'crm_quotes', 'action'=>'index', $lead['id'].'/'.$crmContact['CrmContact']['id']), null);

construit le "/crm_quotes/index/15/21" url. Lorsque je clique sur le lien, je suis pris à l'URL:

"/crm_quotes/index/15%2F212

il est donc remplacer les caractères avec le # html mais il est finalement brisé le lien.

Quand je modifier manuellement l'URL à la bonne:

"/crm_quotes/index/15/21"

la page se charge.

Quelqu'un peut-il me éclairer? Dois-je utiliser la fonction url plutôt que lien?

J'ai beaucoup de pages qui ont besoin de plusieurs paramètres dans l'URL. J'utilisais des paramètres nommés, mais après avoir lu certains commentaires de Mark histoire j'ai décidé d'arrêter les paramètres nommés comme il a laissé entendre à leur retrait possible des versions futures.

Était-ce utile?

La solution

transmettre les paramètres supplémentaires de la manière correcte (gâteau). Gâteau code une / dans l'URL qu'il n'a pas expressément; Je ne l'ai pas trouvé comment éviter ce encore.

echo $this->Html->link('Quote', array('controller'=>'crm_quotes', 
                              'action'=>'index', 
                               $lead['id'],
                               $crmContact['CrmContact']['id']), null);

Autres conseils

En réponse à votre problème: il suffit de prendre le concaténés « / » out et passer les ID en tant que valeurs distinctes dans ce tableau. Il faut placer les barres obliques avant entre eux automatiquement.

echo $this->Html->link('Quote', array(
    'controller'=>'crm_quotes', 
    'action'=>'index', 
    $lead['id'],
    $crmContact['CrmContact']['id']
));

Sur le thème de codage: Je pense que le problème est ici qu'il ne sait pas que vous avez l'intention pour le / à traiter comme une partie valide de l'URL au lieu d'un texte. Le comportement par défaut est de caractères de réserve de encode pour éviter ce problème, il est encodée URL.

Voici un question similaire, et une réponse au sujet URL encodage en général .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top