Articoli di questa serie
  1. Routing, Routes e Pretty URLs
  2. Route Elements, URL dinamici in CakePHP
  3. Passare Parametri URL alla Action
  4. Reverse Routing

Dopo aver visto i Route Elements vediamo come passare parametri URL alla Action.

Utilizzando il terzo argomento di Router::connect() possiamo definire quali elementi saranno passati come argomenti alla nostra action.

Passed Arguments, Passare parametri URL

Vediamo un esempio

Richiamando l’URL /controller001/10 CakePHP eseguirà un controllo sull’elemento id per eseguire il match. Se l’URL soddisfa i requisiti della nostra route verrà richiamata l’azione view().

Nella configurazione CON pass CakePHP passerà l’argomento all’azione del controller che, in questo caso, accetterà almeno un argomento in entrata.

Vediamo un esempio diverso per comprendere l’importanza dei Named Parameters e della chiave Pass

L’action view() richiede un id in entrata. Entrambe le routes soddisfano questo requisito utilizzando la chiave pass nel terzo parametro di Router::connect.

L’ordinamento dei parametri passati all’action è in base alla chiave nell’array pass.

Vediamo un altro esempio. I named parameters sono invertiti ma il passaggio ai parametri dell’action rimangono nello stesso ordine

Come possiamo vedere dall’ultimo esempio il risultato per la nostra action “search” è lo stesso: ottiene in entrata prima un parametro id e poi un parametro city.

Gli argomenti così passati sono accessibili automaticamente anche all’array $this->params[‘pass’] ed in $this->passedArgs. Sconsiglio di utilizzare questi valori all’interno dell’action e cercare, nel limite del possibile, di utilizzare i named parameters e passare parametri url, così da rispettare le varie signatures dei metodi e rendere più semplice e leggibili i metodi.

Nel prossimo articolo di questa serie vedremo come eseguire il Reverse Routing e creare links che rispecchino le nostre regole di routing.

 

Seguimi

Walter Raponi

Appassionato di torte!

Ingredienti base: Model, View, Controller! Un grande framework come CakePHP e la nostra torta è pronta!
Seguimi

Latest posts by Walter Raponi (see all)