⊗ppMVUFmAE 19 of 35 menu

MVC taikymas PHP

Pažiūrėkime, kaip kartu taikomi visi išmokti dalykai. Tarkime, pavyzdžiui, mūsų svetainėje yra kažkokie straipsniai-puslapiai. Mes norime arba parodyti vieną straipsnį, arba parodyti visus straipsnius. Pažiūrėkime, kaip tai padaryti mūsų karkase.

Lentelė duomenų bazėje

Pirmiausia sukurkime lentelę pages duomenų bazėje. Pridėkime ten stulpelius id, title ir text. Užpildykime šią lentelę kokiais nors duomenimis per PhpMyAdmin.

Modelis

Sukurkime modelį su metodu vienam įrašui gauti ir metodu visiems įrašams gauti:

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

Maršrutizavimas

Sukurkime atitinkamą maršrutizavimą:

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

Valdiklis

Sukurkime valdiklį:

<?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 = 'Visų puslapių sąrašas'; $pages = (new Page) -> getAll(); return $this->render('page/all', [ 'pages' => $pages, 'h1' => $this->title ]); } } ?>

Atvaizdai

Sukurkime atvaizdą metodui one:

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

Sukurkime atvaizdą metodui all:

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

Praktinės užduotys

Tarkime, jūsų duomenų bazėje yra produktai. Kiekvienas produktas turi pavadinimą, kainą ir kiekį, aprašymą. Įgyvendinkite vieno produkto atvaizdavimą pagal id ir visų produktų atvaizdavimą panašiai, kaip tai padaryta teorijoje.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti