⊗ppMVUFmRP 8 of 35 menu

Parametere i ruter i MVC i PHP

I forrige leksjon hadde rutene våre faste adresser. Egentlig er rutemekanismen mer komplisert - det er mulig å gjøre det slik at en del av URI-en til siden havner i navngitte parametere, som deretter blir tilgjengelige i kontrolleren.

La oss for eksempel si at adressene våre skal se ut slik: /test/param1/param2/, hvor param1 og param2 er vilkårlige strenger. Samtidig ønsker vi at adresser av dette slaget skal håndteres av en enkelt kontrollerhandling. For å oppnå dette bør vi finne på et parameternavn og sette et kolon foran det, slik:

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

I vårt tilfelle vil det bety at alle forespørsler av typen /test/parameter1/parameter2/ vil havne på handlingen act. Samtidig vil den første parameteren til denne handlingen inneholde en assosiativ array med parameterne: teksten som står på plassen til den første parameteren, havner i array-elementet med nøkkelen 'var1', og teksten til den andre parameteren - i 'var2'.

La oss for eksempel si at følgende er skrevet i adresselinjen: /test/eee/bbb/. La oss se hva den første parameteren til handlingen vil inneholde:

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

Opprett kontrolleren NumController, og i den - handlingen sum. La denne handlingen håndtere adresser av følgende type: /nums/:n1/:n2/:n3/, hvor parameterne er noen tall. Gjør slik at summen av de overførte tallene vises på skjermen.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis