⊗ppMVUFmAE 19 of 35 menu

Прилагане на MVC в PHP

Нека да разгледаме съвместното приложение на всичко научено. Да предположим, че например в нашия сайт има някакви статии-страници. Ние искаме или да покажем една статия, или да покажем всички статии. Нека да разгледаме как да направим това в нашата рамка.

Таблица в БД

За начало ще създадем таблица pages в базата данни. Ще добавим колони id, title и text. Ще попълним тази таблица с някакви данни чрез PhpMyAdmin.

Модел

Ще направим модел с метод за получаване на един запис и метод за получаване на всички записи:

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

Маршрутизация

Ще направим съответната маршрутизация:

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

Контролер

Ще направим контролер:

<?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 = 'Списък на всички страници'; $pages = (new Page) -> getAll(); return $this->render('page/all', [ 'pages' => $pages, 'h1' => $this->title ]); } } ?>

Изгледи

Ще направим изглед за метода one:

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

Ще направим изглед за метода all:

<h1><?= $h1; ?></h1> <div id="content"> <table> <tr> <th>id</th> <th>title</th> <th>връзка</th> </tr> <?php foreach ($pages as $page): ?> <tr> <td><?= $page['id']; ?></td> <td><?= $page['title']; ?></td> <td><a href="/page/<?= $page['id']; ?>/">връзка към страницата</td> </tr> <?php endforeach; ?> </table> </div>

Практически задачи

Да предположим, че в базата данни имате продукти. Всеки продукт съдържа заглавие, цена и количество, описание. Реализирайте извеждане на един продукт по id и на всички продукти подобно на това, което е направено в теорията.

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