⊗ppMVUFmRPA 9 of 35 menu

Zastosowanie parametrów w trasach w MVC w PHP

Przyjrzyjmy się zastosowaniu opisanego na bardziej życiowym przykładzie. Niech nasz kontroler PageController zawiera tablicę stron (te dane powinien zwracać model, ale z modelami jeszcze się nie zajmowaliśmy, więc niech dane na razie po prostu przechowują się w kontrolerze):

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

Zróbmy akcję show, która będzie wyświetlać stronę o określonym numerze (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() { // tutaj wyświetlimy stronę o określonym numerze } } ?>

Niech przy odwołaniu do adresu /page/1/ będzie wyświetlał się tekst pierwszej strony, przy odwołaniu do adresu /page/2/ - tekst drugiej strony i tak dalej. Zróbmy odpowiednią trasę:

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

Zaimplementujmy opisany metod 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'] ]; // wyświetlamy stronę po numerze } } ?>

Zaimplementuj kontroler UserController, zawierający następującą tablicę:

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

W kontrolerze UserController, zrób akcję show, która będzie wyświetlać użytkownika o określonym id. Niech będzie dostępna pod adresem następującego rodzaju: /user/:id/.

W kontrolerze UserController, zrób akcję info, która będzie wyświetlać imię lub wiek określonego użytkownika. Niech ta akcja będzie dostępna pod adresem następującego rodzaju: /user/:id/:key/, gdzie key będzie miało wartość 'name', 'age' lub 'salary'.

W kontrolerze UserController, zrób akcję all, która będzie wyświetlać listę wszystkich użytkowników na ekran. Niech ta akcja będzie dostępna pod adresem następującego rodzaju: /user/all/ (parametrów tu żadnych nie będzie).

W kontrolerze UserController, zrób akcję first, która będzie wyświetlać listę N pierwszych użytkowników na ekran. Niech ta akcja będzie dostępna pod adresem następującego rodzaju: /user/first/:n/, gdzie w parametrze będzie liczba użytkowników, których należy wyświetlić na ekranie.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć