⊗ppMVUFmAE 19 of 35 menu

Anvendelse af MVC i PHP

Lad os se på den fælles anvendelse af alt det lærte. Lad os antage, at vi har nogle artikler-sider på vores hjemmeside. Vi ønsker enten at vise en enkelt artikel eller vise alle artikler. Lad os se på, hvordan man gør dette i vores framework.

Tabel i databasen

Til at starte med, lad os oprette tabellen pages i databasen. Vi tilføjer kolonnerne id, title og text. Lad os udfylde denne tabel med nogle data via PhpMyAdmin.

Model

Lad os lave en model med en metode til at hente et enkelt datasæt og en metode til at hente alle datasæt:

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

Routing

Lad os lave den tilsvarende routing:

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

Controller

Lad os lave controlleren:

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

Views

Lad os lave viewet for metoden one:

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

Lad os lave viewet for metoden all:

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

Praktiske opgaver

Antag, at du har produkter i din database. Hvert produkt indeholder et navn, en pris og en mængde, en beskrivelse. Implementer visning af et enkelt produkt efter id og alle produkter på samme måde som vist i teorien.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικά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
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis