Frage

Ich habe gerade von 1,3 auf 2.0.3 verbessert und versuche, alle Änderungen zu migrieren. Ich bemerke, dass die folgende Zeile

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

baut die URL "/crm_quotes/index/15/21". Wenn ich auf den Link klicke, bin ich zur URL gebracht:

"/crm_quotes/index/15%2F212

Es ersetzt also die Zeichen durch die HTML # Aber es bricht letztendlich den Link.

Wenn ich die URL manuell auf die richtige bearbeite:

"/crm_quotes/index/15/21"

Die Seite lädt.

Kann mich jemand aufklären? Soll ich das verwenden url Funktionen und nicht Link?

Ich habe viele Seiten, die mehrere Parameter benötigen, die in der URL übergeben werden. Ich verwendete benannte Parameter, aber nachdem ich einige Kommentare von Mark Story gelesen hatte, beschloss ich, die benannten Parameter zu stoppen, als er auf ihre mögliche Entfernung aus zukünftigen Versionen hinwies.

War es hilfreich?

Lösung

Übergeben Sie die zusätzlichen Parameter auf die richtige (Kuchen-) Art. Kuchen codiert alle / in der URL, dass es nicht speziell festgelegt wurde; Ich habe noch nicht herausgefunden, wie ich das verhindern kann.

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

Andere Tipps

Als Antwort auf Ihr Problem: Nehmen Sie einfach die verketteten '/' aus und geben Sie die IDs als separate Werte in diesem Array weiter. Es sollte automatisch nach vorneen Schrägstrichen zwischen ihnen platziert werden.

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

Zum Thema Codierung: Ich denke, das Problem hier ist, dass es nicht weiß, dass Sie beabsichtigen, dass Sie als gültiger Teil der URL anstelle eines Textes behandelt werden. Das Standardverhalten besteht darin, Reservezeichen zu codieren, um dieses Problem zu vermeiden. Daher wird die URL codiert.

Hier ist ein Ähnliche Frage, und eine Antwort darüber URL -Codierung im Allgemeinen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top