⊗ppMVUFmRPA 9 of 35 menu

Použití parametrů v routách v MVC v PHP

Podívejme se na použití popsaného na životnějším příkladu. Předpokládejme, že náš kontroler PageController obsahuje pole stránek (tato data by měl vracet model, ale s modely jsme se ještě neprobírali, takže nechť data prozatím jen uložená v kontroleru):

<?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', ]; } } ?>

Vytvořme akci show, která bude zobrazovat stránku s určitým číslo (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() { // zde zobrazíme stránku s určitým číslem } } ?>

Při přístupu na adresu /page/1/ nechť se zobrazí text první stránky, při přístupu na adresu /page/2/ - text druhé stránky a tak dále. Vytvořme odpovídající routu:

<?php use \Core\Route; return [ new Route('/page/:id/', 'page', 'show'), ]; ?>

Implementujme popsanou metodu 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'] ]; // zobrazíme stránku podle čísla } } ?>

Implementujte kontroler UserController, obsahující následující pole:

<?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], ]; ?>

V kontroleru UserController vytvořte akci show, která bude zobrazovat uživatele podle určitého id. Nechť je přístupná na adrese následujícího typu: /user/:id/.

V kontroleru UserController vytvořte akci info, která bude zobrazovat jméno nebo věk daného uživatele. Nechť je tato akce přístupná na adrese následujícího typu: /user/:id/:key/, kde key bude mít hodnotu 'name', 'age' nebo 'salary'.

V kontroleru UserController vytvořte akci all, která bude zobrazovat seznam všech uživatelů. Nechť je tato akce přístupná na adrese následujícího typu: /user/all/ (žádné parametry zde nebudou).

V kontroleru UserController vytvořte akci first, která bude zobrazovat seznam prvních N uživatelů. Nechť je tato akce přístupná na adrese následujícího typu: /user/first/:n/, kde v parametru bude počet uživatelů, které je třeba zobrazit.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικά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
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout