⊗ppMVUFmAE 19 of 35 menu

Tillämpning av MVC i PHP

Låt oss titta på tillämpningen av allt vi har lärt oss. Låt oss säga att vi till exempel på webbplatsen har några artiklar/sidor. Vi vill antingen visa en artikel eller visa alla artiklar. Låt oss överväga hur man gör detta i vår ramverk.

Tabell i databasen

Låt oss först skapa tabellen pages i databasen. Låt oss lägga till kolumnerna id, title och text. Låt oss fylla denna tabell med några data via PhpMyAdmin.

Modell

Låt oss skapa en modell med en metod för att hämta en post och en metod för att hämta alla 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"); } } ?>

Routning

Låt oss skapa motsvarande routing:

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

Kontroller

Låt oss skapa 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 = 'Lista över alla sidor'; $pages = (new Page) -> getAll(); return $this->render('page/all', [ 'pages' => $pages, 'h1' => $this->title ]); } } ?>

Vyer

Låt oss skapa en vy för metoden one:

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

Låt oss skapa en vy för metoden all:

<h1><?= $h1; ?></h1> <div id="content"> <table> <tr> <th>id</th> <th>title</th> <th>länk</th> </tr> <?php foreach ($pages as $page): ?> <tr> <td><?= $page['id']; ?></td> <td><?= $page['title']; ?></td> <td><a href="/page/<?= $page['id']; ?>/">länk till sidan</td> </tr> <?php endforeach; ?> </table> </div>

Praktiska uppgifter

Anta att du har produkter i din databas. Varje produkt innehåller namn, pris och kvantitet, beskrivning. Implementera visning av en produkt efter id och alla produkter liknande som gjorts i teorin.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa