Parametri v rutah v MVC v PHP
V prejšnji lekciji so imele naše route fiksne naslove. Pravzaprav je mehanizem usmerjanja bolj zapleten - mogoče je narediti tako, da del URI-ja strani pade v imenovane parametre, ki so nato dostopni v krmilniku.
Recimo, da bi naši naslovi izgledali
tako: /test/param1/param2/,
kjer sta param1 in param2 poljubni
nizi. Želimo, da naslove te vrste
obravnava eno dejanje krmilnika.
Za to je treba zamisliti ime parametra
in pred njim postaviti dvopičje, takole:
<?php
use \Core\Route;
return [
new Route('/test/:var1/:var2/', 'page', 'act'),
];
?>
V našem primeru bo to pomenilo, da bodo vsa povpraševja
oblike /test/parameter1/parameter2/
prišla na dejanje act. Pri
tem bo v prvi parameter tega dejanja
prišel asociativni niz s parametri:
besedilo, ki bo na mestu prvega parametra,
bo prišlo v element matrike s ključem 'var1',
besedilo drugega parametra pa v 'var2'.
Recimo, da je v naslovni vrstici vpisano
naslednje: /test/eee/bbb/. Poglejmo,
kaj bo vseboval prvi parameter
dejanja:
<?php
namespace Project\Controllers;
use Core\Controller;
class PageController extends Controller
{
public function act($params)
{
var_dump($params); // ['var1' => 'eee', 'var2' => 'bbb']
}
}
?>
Naredite krmilnik NumController,
in v njem - dejanje sum. Naj to
dejanje obravnava naslove naslednje oblike:
/nums/:n1/:n2/:n3/, kjer bodo parametri
določene številke. Naredite tako, da
se na zaslon izpiše vsota podanih števil.