⊗ppMVUFmRP 8 of 35 menu

Parametry w trasach w MVC w PHP

W poprzedniej lekcji nasze trasy miały stałe adresy. W rzeczywistości mechanizm routingu jest bardziej złożony - można sprawić, że część URI strony trafiała do nazwanych parametrów, dostępnych następnie w kontrolerze.

Załóżmy, na przykład, że nasze adresy będą wyglądać tak: /test/param1/param2/, gdzie param1 i param2 to dowolne ciągi znaków. Chcemy przy tym, aby adresy tego typu były obsługiwane przez jedno działanie kontrolera. Aby to zrobić, należy wymyślić nazwę parametru i przed nią postawić dwukropek, tak:

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

W naszym przypadku okaże się, że wszystkie żądania typu /test/parametr1/parametr2/ będą trafiać do działania act. Przy czym do pierwszego parametru tej akcji będzie trafiać tablica asocjacyjna z parametrami: tekst, który będzie na miejscu pierwszego parametru, trafi do elementu tablicy z kluczem 'var1', a tekst drugiego parametru - do 'var2'.

Załóżmy, na przykład, że w pasku adresu wpisano następujące: /test/eee/bbb/. Spójrzmy, co będzie zawierał pierwszy parametr akcji:

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

Stwórz kontroler NumController, a w nim - działanie sum. Niech to działanie obsługuje adresy następującego typu: /nums/:n1/:n2/:n3/, gdzie parametrami będą jakieś liczby. Spraw, aby na ekranie wyświetlała się suma przekazanych liczb.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć