⊗ppMVUFmRP 8 of 35 menu

Параметри в маршрути в MVC в PHP

В предишния урок нашите маршрути имаха фиксирани адреси. Всъщност механизмът за маршрутизация е по- сложен - може да се направи така, че част от URI на страницата да попада в именувани параметри, достъпни след това в контролера.

Нека, например, нашите адреси да изглеждат така: /test/param1/param2/, където param1 и param2 са произволни низове. При това искаме адреси от такъв вид да се обработват от едно действие на контролера. За това трябва да измислим име на параметър и пред него да поставим двоеточие, ето така:

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

В нашия случай ще се получи, че всички заявки от вида /test/параметър1/параметър2/ ще попадат в действие act. При това в първия параметър на това действие ще попада асоциативен масив с параметри: текстът, който ще е на мястото на първия параметър, попада в елемент на масива с ключ 'var1', а текстът на втория параметър - в 'var2'.

Нека, например, в адресната лента е въведено следното: /test/eee/bbb/. Нека видим какво ще съдържа първият параметър на действието:

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

Направете контролер NumController, а в него - действие sum. Нека това действие обработва адреси от следния вид: /nums/:n1/:n2/:n3/, където параметрите са някакви числа. Направете така, че на екрана да се извежда сумата от подадените числа.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне