PHP में MVC रूट्स में पैरामीटर्स का उपयोग
आइए वर्णित को अधिक व्यावहारिक उदाहरण पर देखें। मान लें कि हमारा नियंत्रक
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/, जहाँ पैरामीटर में
उपयोगकर्ताओं की वह संख्या होगी, जिन्हें
स्क्रीन पर प्रदर्शित करना है।