Parameters in roetes in MVC in PHP
In die vorige les het ons roetes vaste adresse gehad. Eintlik is die meganisme van roete-aanwysing meer kompleks - jy kan dit so maak dat 'n gedeelte van die URI van die bladsy in genoemde parameters beland, wat dan in die beheerder beskikbaar is.
Laat ons byvoorbeeld sê ons adresse moet so lyk: /test/param1/param2/, waar param1 en param2 arbitrêre snare is. Terselfdertyd wil ons hê dat adresse van hierdie tipe deur een beheerderaksie hanteer moet word. Om dit te doen, moet jy 'n naam vir die parameter bedink en 'n dubbelpunt daarvoor sit, soos volg:
<?php
use \Core\Route;
return [
new Route('/test/:var1/:var2/', 'page', 'act'),
];
?>
In ons geval sal dit beteken dat alle versoeke van die tipe /test/parameter1/parameter2/ na die aksie act sal gaan. Terselfdertyd sal die eerste parameter van hierdie aksie 'n assosiatiewe skikking met parameters bevat: die teks wat in die plek van die eerste parameter sal wees, beland in die skikkingelement met die sleutel 'var1', en die teks van die tweede parameter - in 'var2'.
Laat ons byvoorbeeld sê die volgende is in die adresbalk getik: /test/eee/bbb/. Kom ons kyk wat die eerste parameter van die aksie sal bevat:
<?php
namespace Project\Controllers;
use Core\Controller;
class PageController extends Controller
{
public function act($params)
{
var_dump($params); // ['var1' => 'eee', 'var2' => 'bbb']
}
}
?>
Maak 'n beheerder NumController, en daarin - 'n aksie sum. Laat hierdie aksie adresse van die volgende tipe hanteer: /nums/:n1/:n2/:n3/, waar die parameters sekere getalle sal wees. Maak dit so dat die som van die oorgedraagde getalle op die skerm vertoon word.