⊗ppMVUFmRP 8 of 35 menu

Parametri nei route in MVC in PHP

Nella lezione precedente i nostri route avevano indirizzi fissi. In realtà il meccanismo di routing è più complesso - è possibile fare in modo che una parte dell'URI della pagina vada in parametri nominati, successivamente accessibili nel controller.

Supponiamo, ad esempio, che i nostri indirizzi abbiano questo aspetto: /test/param1/param2/, dove param1 e param2 sono stringhe arbitrarie. In questo caso vogliamo che gli indirizzi di questo tipo siano gestiti da un'unica azione del controller. Per fare ciò, bisogna inventare un nome per il parametro e mettere due punti prima di esso, in questo modo:

<?php use \Core\Route; return [ new Route('/test/:var1/:var2/', 'page', 'act'), ]; ?>

Nel nostro caso, risulterà che tutte le richieste del tipo /test/parametro1/parametro2/ andranno all'azione act. Inoltre, nel primo parametro di questa azione verrà passato un array associativo con i parametri: il testo che sarà al posto del primo parametro andrà nell'elemento dell'array con la chiave 'var1', e il testo del secondo parametro - in 'var2'.

Supponiamo, ad esempio, che nella barra degli indirizzi sia digitato quanto segue: /test/eee/bbb/. Vediamo cosa conterrà il primo parametro dell'azione:

<?php namespace Project\Controllers; use Core\Controller; class PageController extends Controller { public function act($params) { var_dump($params); // ['var1' => 'eee', 'var2' => 'bbb'] } } ?>

Crea un controller NumController, e in esso - un'azione sum. Lascia che questa azione gestisca indirizzi del seguente tipo: /nums/:n1/:n2/:n3/, dove i parametri saranno alcuni numeri. Fai in modo che venga visualizzata a schermo la somma dei numeri passati.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta