⊗ppMVUFmAE 19 of 35 menu

Uporaba MVC v PHP

Poglejmo si skupno uporabo vsega naučenega. Recimo, da imamo na spletnem mestu nekaj člankov-strani. Želimo pokazati bodisi en članek bodisi pokazati vse članke. Poglejmo, kako to narediti v našem ogrodju.

Tabela v bazi podatkov

Za začetek ustvarimo tabelo pages v bazi podatkov. Dodajmo stolpce id, title in text. Zapolnimo to tabelo z nekaj podatki prek PhpMyAdmin.

Model

Naredimo model z metodo za pridobitev enega zapisa in metodo za pridobitev vseh zapisov:

<?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"); } } ?>

Usmerjanje

Naredimo ustrezno usmerjanje:

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

Krmilnik

Naredimo krmilnik:

<?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 vseh strani'; $pages = (new Page) -> getAll(); return $this->render('page/all', [ 'pages' => $pages, 'h1' => $this->title ]); } } ?>

Pogledi

Naredimo pogled za metodo one:

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

Naredimo pogled za metodo all:

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

Praktične naloge

Recimo, da imate v bazi podatkov izdelke. Vsak izdelek vsebuje naziv, ceno in količino, opis. Implementirajte prikaz enega izdelka po id in vseh izdelkov podobno kot je narejeno v teoriji.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni