Պարամետրերի կիրառումը ռուտերում MVC-ում PHP-ում
Եկեք նայենք նկարագրվածի կիրառումը
ավելի կենսական օրինակով: Թող մեր կոնտրոլլերը
PageController պարունակի էջերի զանգված
(այս տվյալները պետք է տրամադրի մոդելը, բայց մենք
դեռ չենք քննարկել մոդելները, ուստի թող
տվյալները առայժմ պարզապես պահվեն կոնտրոլլերում):
<?php
namespace Project\Controllers;
use Core\Controller;
class PageController extends Controller
{
private $pages;
public function __construct()
{
$this->pages = [
1 => 'page 1',
2 => 'page 2',
3 => 'page 3',
];
}
}
?>
Եկեք ստեղծենք show գործողությունը, որն
էկրանին կցուցադրի որոշակի համարով էջը
(id):
<?php
namespace Project\Controllers;
use Core\Controller;
class PageController extends Controller
{
private $pages;
public function __construct()
{
$this->pages = [
1 => 'page 1',
2 => 'page 2',
3 => 'page 3',
];
}
public function show()
{
// այստեղ կցուցադրենք որոշակի համարով էջը
}
}
?>
Թող /page/1/ հասցեին դիմելու դեպքում
ցուցադրվի առաջին էջի տեքստը,
/page/2/ հասցեին դիմելու դեպքում -
երկրորդ էջի տեքստը և այլն: Եկեք ստեղծենք
համապատասխան ռուտը:
<?php
use \Core\Route;
return [
new Route('/page/:id/', 'page', 'show'),
];
?>
Իրականացնենք նկարագրված show մեթոդը:
<?php
namespace Project\Controllers;
use Core\Controller;
class PageController extends Controller
{
private $pages;
public function __construct()
{
$this->pages = [
1 => 'page 1',
2 => 'page 2',
3 => 'page 3',
];
}
public function show($params)
{
echo $this->pages[ $params['id'] ]; // ցուցադրում ենք էջը ըստ համարի
}
}
?>
Իրականացրեք UserController կոնտրոլլերը,
որը պարունակում է հետևյալ զանգվածը:
<?php
$this->users = [
1 => ['name'=>'user1', 'age'=>'23', 'salary' => 1000],
2 => ['name'=>'user2', 'age'=>'24', 'salary' => 2000],
3 => ['name'=>'user3', 'age'=>'25', 'salary' => 3000],
4 => ['name'=>'user4', 'age'=>'26', 'salary' => 4000],
5 => ['name'=>'user5', 'age'=>'27', 'salary' => 5000],
];
?>
UserController կոնտրոլլերում, ստեղծեք
show գործողությունը, որը կցուցադրի
օգտատիրոջը ըստ որոշակի id: Թող այն
հասանելի լինի հետևյալ տեսքի հասցեով.
/user/:id/:
UserController կոնտրոլլերում, ստեղծեք
info գործողությունը, որը կցուցադրի
տրված օգտատիրոջ անունը կամ տարիքը: Թող այս
գործողությունը հասանելի լինի հետևյալ տեսքի
հասցեով. /user/:id/:key/, որտեղ key
կունենա 'name', 'age'
կամ 'salary' արժեքը:
UserController կոնտրոլլերում, ստեղծեք
all գործողությունը, որը կցուցադրի
բոլոր օգտատերերի ցանկը էկրանին: Թող այս գործողությունը
հասանելի լինի հետևյալ տեսքի հասցեով.
/user/all/ (այստեղ պարամետրեր
ոչ մի չլինեն):
UserController կոնտրոլլերում, ստեղծեք
first գործողությունը, որը կցուցադրի
առաջին N օգտատերերի ցանկը էկրանին: Թող այս
գործողությունը հասանելի լինի հետևյալ տեսքի
հասցեով. /user/first/:n/, որտեղ պարամետրում
կլինի այն օգտատերերի քանակը, որոնք պետք է
ցուցադրվեն էկրանին: