⊗ppMVUFmAE 19 of 35 menu

Aplikace MVC v PHP

Podívejme se na společnou aplikaci všeho, co jsme se naučili. Předpokládejme, že máme na webu nějaké články-stránky. Chceme bud zobrazit jeden článek, nebo zobrazit všechny články. Podívejme se, jak to udělat v našem frameworku.

Tabulka v databázi

Pro začátek vytvoříme tabulku pages v databázi. Přidejme tam sloupce id, title a text. Naplňme tuto tabulku nějakými daty přes PhpMyAdmin.

Model

Vytvořme model s metodou pro získání jednoho záznamu a metodou pro získání všech záznamů:

<?php namespace Project\Models; use \Core\Model; class Page extends Model { public function getById($id) { return $this->findOne("SELECT * FROM pages WHERE id=$id"); } public function getAll() { return $this->findMany("SELECT id, title FROM pages"); } } ?>

Routování

Vytvořme odpovídající routování:

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

Kontroler

Vytvořme kontroler:

<?php namespace Project\Controllers; use \Core\Controller; use \Project\Models\Page; class PageController extends Controller { public function one($params) { $page = (new Page) -> getById($params['id']); $this->title = $page['title']; return $this->render('page/one', [ 'text' => $page['text'], 'h1' => $this->title ]); } public function all() { $this->title = 'Seznam všech stránek'; $pages = (new Page) -> getAll(); return $this->render('page/all', [ 'pages' => $pages, 'h1' => $this->title ]); } } ?>

Pohledy

Vytvořme pohled pro metodu one:

<h1><?= $h1; ?></h1> <div id="content"> <?= $text; ?> </div>

Vytvořme pohled pro metodu all:

<h1><?= $h1; ?></h1> <div id="content"> <table> <tr> <th>id</th> <th>title</th> <th>odkaz</th> </tr> <?php foreach ($pages as $page): ?> <tr> <td><?= $page['id']; ?></td> <td><?= $page['title']; ?></td> <td><a href="/page/<?= $page['id']; ?>/">odkaz na stránku</td> </tr> <?php endforeach; ?> </table> </div>

Praktické úkoly

Předpokládejme, že máte v databázi produkty. Každý produkt obsahuje název, cenu a množství, popis. Realizujte výpis jednoho produktu podle id a všech produktů podobně jako je to provedeno v teorii.

Č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