2016-06-11 22 views
0

Ich habe eine URL, die Schriftarten als solche geladen:Mischen Named params mit Standard-params Phalcon

/templatename/fonts/helvetica?weights=regular,bold,light

in PHP wird es dynamisch eine CSS-Datei mit der entsprechenden Schrift Referenzierung erzeugen.

Wir sind erst vor kurzem nach Phalcon umgezogen und es ist kaputt gegangen. Ich versuche herauszufinden, wie ich dem Router mitteilen kann, dass er den Namen der Schriftart als benannten Parameter verwenden, aber auch den Standardparam-Stil verwenden soll. mit den Fragezeichen.

das ist, was mein Router wie jetzt aussieht:

... 
    "fonts"=>[ 
      "pattern" => "/fonts/{file:[\w\W]}", 
      "route" => [ 
       "controller" => "asset", 
       "action" => "fonts" 
       ] 
     ] 
... 

Wenn ich die Dispatcher-Schleife, wie folgt aus:

$params = $this->dispatcher->getParams()

Das Array zeigt nicht die Gewichte param:

Array 
(
    [template] => templatename 
    [file] => helvetica 
) 

Wie bekomme ich es, ohne dass es so aussieht? Ändern der URL-Struktur?

Array 
(
    [template] => templatename 
    [file] => helvetica 
    [weights] => regular,bold,light 
) 

Antwort

2

Wenn Sie die folgende URL haben:

/templatename/fonts/helvetica?weights=regular,bold,light 

Dann weights=regular,bold,light sind die GET-Parameter.

Sie können diese innerhalb Phalcon anfordern, indem Sie mit:

$weights = $this->request->getQuery('weights') 

Sie müssen diese in Ihrer Route nicht erklären, Phalcon automatisch diese GET Parameter an das Ende Ihrer Routen anhängen.

Überprüfen Sie die Phalcon HTTP Request docs für weitere Informationen

+1

Betrachte Phill. Das ist eigentlich eine Antwort. Sie müssen das Ergebnis beider Methoden mischen, damit Ihr Array wie gewünscht aussieht. – yergo