Параметри во рутите во 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/, каде параметрите
ќе бидат одредени броеви. Направете така што
на екран ќе се испечати збир на передадените броеви.