Parametri maršrutos MVC PHP
Iepriekšējā nodarbībā mūsu maršruti bija ar fiksētām adresēm. Patiesībā maršrutēšanas mehānisms ir sarežģītāks - var izveidot tā, ka daļa no URI lapas nonāk nosauktos parametros, kas pēc tam ir pieejami kontrolierī.
Pieņemsim, ka mūsu adreses izskatīsies
šādi: /test/param1/param2/,
kur param1 un param2 ir patvaļīgas
virknes. Tajā pašā laikā mēs vēlamies, lai šāda veida
adreses apstrādātu viena kontroliera darbība.
Lai to izdarītu, jāizdomā parametra nosaukums
un pirms tā jāieliek kols, šādi:
<?php
use \Core\Route;
return [
new Route('/test/:var1/:var2/', 'page', 'act'),
];
?>
Mūsu gadījumā izrādīsies, ka visi pieprasījumi
veidā /test/parametrs1/parametrs2/
nokļūs darbībā act. Tajā
pašā laikā šīs darbības pirmajā parametrā
nokļūs asociatīvs masīvs ar parametriem:
teksts, kas būs pirmā parametra vietā,
nokļūst masīva elementā ar atslēgu 'var1',
un otrā parametra teksts - 'var2'.
Pieņemsim, ka adreses joslā ierakstīts
sekojošais: /test/eee/bbb/. Apskatīsim,
ko saturs pirmajā parametrā
darbībā:
<?php
namespace Project\Controllers;
use Core\Controller;
class PageController extends Controller
{
public function act($params)
{
var_dump($params); // ['var1' => 'eee', 'var2' => 'bbb']
}
}
?>
Izveidojiet kontrolieri NumController,
un tajā - darbību sum. Ļaujiet šai
darbībai apstrādāt šāda veida adreses:
/nums/:n1/:n2/:n3/, kur parametri
būs daži skaitļi. Iestatiet tā, lai
ekrānā tiktu izvadīta padoto skaitļu summa.