⊗ppMVUFmRPA 9 of 35 menu

Aplicação de parâmetros em rotas no MVC em PHP

Vamos ver a aplicação do descrito em um exemplo mais real. Suponha que nosso controlador PageController contenha um array de páginas (estes dados deveriam ser fornecidos pelo modelo, mas ainda não abordamos os modelos, então vamos deixar os dados armazenados no controlador por enquanto):

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

Vamos criar uma ação show que exibirá na tela a página com um determinado número (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() { // aqui exibiremos a página com um determinado número } } ?>

Suponha que ao acessar o endereço /page/1/ seja exibido o texto da primeira página, ao acessar o endereço /page/2/ - o texto da segunda página e assim por diante. Vamos criar a rota correspondente:

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

Vamos implementar o método show descrito:

<?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'] ]; // exibe a página pelo número } } ?>

Implemente o controlador UserController, contendo o seguinte array:

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

No controlador UserController, crie uma ação show que irá exibir o usuário por um determinado id. Suponha que ela esteja acessível pelo endereço do seguinte tipo: /user/:id/.

No controlador UserController, crie uma ação info que irá exibir o nome ou a idade de um determinado usuário. Suponha que esta ação esteja acessível pelo endereço do seguinte tipo: /user/:id/:key/, onde key terá o valor 'name', 'age' ou 'salary'.

No controlador UserController, crie uma ação all que irá exibir a lista de todos os usuários na tela. Suponha que esta ação esteja acessível pelo endereço do seguinte tipo: /user/all/ (sem parâmetros aqui).

No controlador UserController, crie uma ação first que irá exibir a lista dos N primeiros usuários na tela. Suponha que esta ação esteja acessível pelo endereço do seguinte tipo: /user/first/:n/, onde no parâmetro estarão a quantidade de usuários que devem ser exibidos na tela.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar