⊗ppMVUFmAE 19 of 35 menu

Anvendelse av MVC i PHP

La oss se på samlet anvendelse av alt det innlærte. La oss si at vi for eksempel har noen artikkelsider på nettstedet vårt. Vi ønsker enten å vise én artikkel, eller vise alle artikler. La oss se på hvordan dette kan gjøres i vårt rammeverk.

Tabell i databasen

Til å begynne med, la oss opprette en tabell pages i databasen. La oss legge til kolonnene id, title og text. La oss fylle denne tabellen med noen data via PhpMyAdmin.

Modell

La oss lage en modell med en metode for å hente én post og en metode for å hente alle poster:

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

La oss sette opp tilhørende routing:

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

Kontroller

La oss lage en kontroller:

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

Visninger

La oss lage en visning for metoden one:

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

La oss lage en visning for metoden all:

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

Praktiske oppgaver

La oss si at du har produkter i databasen. Hvert produkt inneholder navn, pris og antall, beskrivelse. Implementer visning av ett produkt etter id og alle produkter på samme måte som det er gjort i teorien.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis