Toepassing van parameters in roetes in MVC in PHP
Kom ons kyk na die toepassing van die beskryfde op
'n meer lewenswerklike voorbeeld. Laat ons beheerder
PageController 'n versameling bladsye bevat
(hierdie data moet deur die model verskaf word, maar met
modelle het ons nog nie gewerk nie, so laat die
data vir nou net in die beheerder gestoor word):
<?php
namespace Project\Controllers;
use Core\Controller;
class PageController extends Controller
{
private $pages;
public function __construct()
{
$this->pages = [
1 => 'bladsy 1',
2 => 'bladsy 2',
3 => 'bladsy 3',
];
}
}
?>
Kom ons maak 'n aksie show wat
'n bladsy met 'n spesifieke
nommer (id) op die skerm sal vertoon:
<?php
namespace Project\Controllers;
use Core\Controller;
class PageController extends Controller
{
private $pages;
public function __construct()
{
$this->pages = [
1 => 'bladsy 1',
2 => 'bladsy 2',
3 => 'bladsy 3',
];
}
public function show()
{
// hier sal ons die bladsy met 'n spesifieke nommer vertoon
}
}
?>
Laat by toegang tot adres /page/1/
die teks van die eerste bladsy verskyn, by
toegang tot adres /page/2/ -
die teks van die tweede bladsy, ensovoorts. Kom ons maak
die ooreenstemmende roete:
<?php
use \Core\Route;
return [
new Route('/page/:id/', 'page', 'show'),
];
?>
Kom ons implementeer die beskryfde metode show:
<?php
namespace Project\Controllers;
use Core\Controller;
class PageController extends Controller
{
private $pages;
public function __construct()
{
$this->pages = [
1 => 'bladsy 1',
2 => 'bladsy 2',
3 => 'bladsy 3',
];
}
public function show($params)
{
echo $this->pages[ $params['id'] ]; // vertoon bladsy volgens nommer
}
}
?>
Implementeer die beheerder UserController,
wat die volgende versameling bevat:
<?php
$this->users = [
1 => ['name'=>'gebruiker1', 'age'=>'23', 'salary' => 1000],
2 => ['name'=>'gebruiker2', 'age'=>'24', 'salary' => 2000],
3 => ['name'=>'gebruiker3', 'age'=>'25', 'salary' => 3000],
4 => ['name'=>'gebruiker4', 'age'=>'26', 'salary' => 4000],
5 => ['name'=>'gebruiker5', 'age'=>'27', 'salary' => 5000],
];
?>
In die beheerder UserController, maak 'n
aksie show wat die
gebruiker volgens 'n spesifieke id sal vertoon. Laat dit
beskikbaar wees by 'n adres van die volgende vorm:
/user/:id/.
In die beheerder UserController, maak 'n
aksie info wat die
naam of ouderdom van 'n gegewe gebruiker sal vertoon. Laat hierdie
aksie beskikbaar wees by 'n adres van die volgende
vorm: /user/:id/:key/, waar key
die waarde 'name', 'age'
of 'salary' sal hê.
In die beheerder UserController, maak 'n
aksie all wat die
lys van alle gebruikers op die skerm sal vertoon. Laat hierdie aksie
beskikbaar wees by 'n adres van die volgende vorm:
/user/all/ (geen parameters hier nie
).
In die beheerder UserController, maak 'n
aksie first wat die
lys van die eerste N gebruikers op die skerm sal vertoon. Laat hierdie
aksie beskikbaar wees by 'n adres van die volgende vorm: /user/first/:n/, waar in die parameter
die aantal gebruikers sal wees wat
op die skerm vertoon moet word.