⊗ppMVUFmAE 19 of 35 menu

Примена MVC у PHP

Хајде да погледамо заједничку примену свега што смо научили. Нека, на пример, на нашем сајту постоје неки чланци-странице. Ми желимо или да прикажемо један чланак, или да прикажемо све чланке. Хајде да размотримо како то да урадимо у нашем фрејмворку.

Табела у бази података

За почетак ћемо направити табелу pages у бази података. Додаћемо тамо колоне id, title и text. Попунићемо ову табелу неким подацима преко PhpMyAdmin.

Модел

Направићемо модел са методом за добијање једног записа и методом за добијање свих записа:

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

Рутинг

Направићемо одговарајући рутинг:

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

Контролер

Направићемо контролер:

<?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 = 'Списак свих страница'; $pages = (new Page) -> getAll(); return $this->render('page/all', [ 'pages' => $pages, 'h1' => $this->title ]); } } ?>

Презентације

Направићемо презентацију за метод one:

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

Направићемо презентацију за метод all:

<h1><?= $h1; ?></h1> <div id="content"> <table> <tr> <th>id</th> <th>наслов</th> <th>линк</th> </tr> <?php foreach ($pages as $page): ?> <tr> <td><?= $page['id']; ?></td> <td><?= $page['title']; ?></td> <td><a href="/page/<?= $page['id']; ?>/">линк на страницу</td> </tr> <?php endforeach; ?> </table> </div>

Практични задаци

Нека у вашој бази података постоје производи. Сваки производ садржи назив, цену и количину, опис. Имплементирајте приказ једног производа по id и свих производа слично ономе како је урађено у теорији.

Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј