⊗ppMVUFmRPA 9 of 35 menu

Използване на параметри в маршрути в 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/, където в параметъра ще бъде броят потребители, които трябва да се изведат на екрана.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне