PHP-daky MVC-da marşrullaryň parametrlerini ulanyş
Görkezileni has ýaşaýyş mysalynda ulanmagy serediň.
Bizim PageController kontrolçimiziň sahypalar
sanawy bardyr diýeliň (bu maglumatlar model tarapyndan
berilmeli, ýöne biz heniz modeller bilen işlemediğimiz
üçin, häzirçe bu maglumatlar diňe kontrolçide saklansyn):
<?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',
];
}
}
?>
Belläni bir belgili nomerli (id) sahypany
ekrana çykarýan show hereketini düzeliň:
<?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()
{
// bu ýerde belli bir nomerli sahypany çykaryarys
}
}
?>
/page/1/ adresine ýüzlenilende birinji sahypanyň
teksti, /page/2/ adresine ýüzlenilende ikinji
sahypanyň teksti we şuňa meňzeş çyksyn diýeliň. Degişli
marşruty düzeliň:
<?php
use \Core\Route;
return [
new Route('/page/:id/', 'page', 'show'),
];
?>
Görkezilen show usulyny amala aşyryň:
<?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'] ]; // nomer boýunça sahypany çykaryarys
}
}
?>
Aşakdaky sanawy öz içine alýan UserController
kontrolçisini amala aşyryň:
<?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 kontrolçisinde, belli bir
id boýunça ulanyjyny çykarýan show
hereketini düzüň. Onuň aşakdaky görnüşli adrese
elýeterli bolmagyny üpjün ediň: /user/:id/.
UserController kontrolçisinde, kesgitlenen
ulanyjynyň adyny ýa-da ýaşyny çykarýan info
hereketini düzüň. Bu hereketiň aşakdaky görnüşli
adrese elýeterli bolmagyny üpjün ediň:
/user/:id/:key/, bu ýerde key
'name', 'age' ýa-da 'salary'
görnüşinde baha alyar.
UserController kontrolçisinde, ähli
ulanyjylaryň sanawyny ekrana çykarýan all
hereketini düzüň. Bu hereketiň aşakdaky görnüşli
adrese elýeterli bolmagyny üpjün ediň:
/user/all/ (bu ýerde hiç hili parametrler bolmaz).
UserController kontrolçisinde, ilkinji N
sany ulanyjynyň sanawyny ekrana çykarýan
first hereketini düzüň. Bu hereketiň
aşakdaky görnüşli adrese elýeterli bolmagyny
üpjün ediň: /user/first/:n/, bu ýerde
parametrde ekrana çykarylmaly ulanyjylaryň sany
berler.