⊗ppMVUFmAE 19 of 35 menu

Primena MVC u PHP

Hajde da pogledamo zajedničku primenu svega naučenog. Pretpostavimo, na primer, da na našem sajtu postoje neki članci-stranice. Mi želimo ili da prikažemo jedan članak, ili da prikažemo sve članke. Hajde da razmotrimo kako to da uradimo u našem frejmvorku.

Tabela u bazi podataka

Za početak, kreirajmo tabelu pages u bazi podataka. Dodajmo kolone id, title i text. Popunimo ovu tabelu nekim podacima preko PhpMyAdmin.

Model

Napravimo model sa metodom za dobijanje jednog zapisa i metodom za dobijanje svih zapisa:

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

Rutiranje

Napravimo odgovarajuće rutiranje:

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

Kontroler

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

Prikazi (Views)

Napravimo prikaz za metod one:

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

Napravimo prikaz za metod all:

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

Praktični zadaci

Pretpostavimo da u vašoj bazi podataka imate proizvode. Svaki proizvod sadrži naziv, cenu i količinu, opis. Implementirajte prikaz jednog proizvoda po id i svih proizvoda slično onome što je urađeno u teoriji.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij