⊗ppMVUFmAE 19 of 35 menu

MVC rakendamine PHP-s

Vaatame kõigi õpitud asjade kooskasutamist. Oletame näiteks, et meie veebisaidil on mõned artiklid-leheküljed. Me tahame kas näidata ühte artiklit või näidata kõiki artikleid. Vaatame, kuidas seda teha meie raamistikus.

Tabel andmebaasis

Alustuseks loome tabeli pages andmebaasi. Lisame sinna veerud id, title ja text. Täidame selle tabeli mõne andmega läbi PhpMyAdmini.

Mudel

Teeme mudeli, millel on meetod ühe kirje saamiseks ja meetod kõigi kirjete saamiseks:

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

Marsruutimine

Teeme vastava marsruutimise:

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

Kontroller

Teeme kontrolleri:

<?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 = 'Kõikide lehtede nimekiri'; $pages = (new Page) -> getAll(); return $this->render('page/all', [ 'pages' => $pages, 'h1' => $this->title ]); } } ?>

Vaated

Teeme vaate meetodile one:

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

Teeme vaate meetodile 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 lehele</td> </tr> <?php endforeach; ?> </table> </div>

Praktilised ülesanded

Oletame, et teie andmebaasis on tooted. Iga toode sisaldab nimetust, hinda ja kogust, kirjeldust. Rakendage ühe toode kuvamine id järgi ja kõikide toodete kuvamine sarnaselt teoorias tehtule.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu