⊗ppMVUFmAE 19 of 35 menu

Toepassing van MVC in PHP

Laten we eens kijken naar de gezamenlijke toepassing van alles wat we hebben geleerd. Stel dat we bijvoorbeeld op de website enkele artikelpagina's hebben. We willen ofwel één artikel tonen, ofwel alle artikelen tonen. Laten we bekijken hoe we dit kunnen doen in ons framework.

Tabel in de database

Laten we om te beginnen een tabel pages aanmaken in de database. We voegen kolommen id, title en text toe. Vullen we deze tabel met wat gegevens via PhpMyAdmin.

Model

Laten we een model maken met een methode voor het ophalen van één record en een methode voor het ophalen van alle records:

<?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

Laten we de bijbehorende routing maken:

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

Controller

Laten we een controller maken:

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

Views

Laten we een view maken voor de methode one:

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

Laten we een view maken voor de methode 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 naar pagina</td> </tr> <?php endforeach; ?> </table> </div>

Praktische opdrachten

Stel dat u producten in uw database heeft. Elk product bevat een naam, prijs, hoeveelheid en beschrijving. Implementeer de weergave van één product op basis van id en alle producten vergelijkbaar met hoe het in de theorie is gedaan.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren