⊗ppMVUFmRP 8 of 35 menu

Parametri în rute în MVC în PHP

În lecția precedentă, rutele noastre aveau adrese fixe. De fapt, mecanismul de rutare este mai complex - se poate face ca o parte a URI-ului paginii să ajungă în parametri numiți, accesibili apoi în controller.

Să presupunem, de exemplu, că adresele noastre vor arăta așa: /test/param1/param2/, unde param1 și param2 sunt șiruri arbitrare. În același timp, dorim ca adresele de acest tip să fie procesate de o acțiune a controller-ului. Pentru aceasta, trebuie să inventăm un nume pentru parametru și să punem un două puncte înaintea lui, astfel:

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

În cazul nostru, se va întâmpla ca toate cererile de tipul /test/parametru1/parametru2/ să ajungă la acțiunea act. În același timp, în primul parametru al acestei acțiuni va ajunge un array asociativ cu parametrii: textul care va fi în locul primului parametru, va ajunge în elementul array-ului cu cheia 'var1', iar textul celui de-al doilea parametru - în 'var2'.

Să presupunem, de exemplu, că în bara de adrese este introdus următorul lucru: /test/eee/bbb/. Să vedem ce va conține primul parametru al acțiunii:

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

Creați un controller NumController, și în el - acțiunea sum. Fie ca această acțiune să proceseze adrese de următoarea formă: /nums/:n1/:n2/:n3/, unde parametrii vor fi niște numere. Faceți ca pe ecran să fie afișată suma numerilor transmise.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge