⊗ppMVUFmAE 19 of 35 menu

PHPda MVCni qo‘llash

Keling, o‘rganilgan barcha narsalarni birgalikda qo‘llashni ko‘rib chiqaylik. Faraz qilaylik, masalan, bizning saytimizda maqola-sahifalar mavjud. Biz bitta maqolani ko‘rsatmoqchimiz yoki barcha maqolalarni ko‘rsatmoqchimiz. Keling, buni bizning freymvorkimizda qanday amalga oshirishni ko‘rib chiqaylik.

Ma’lumotlar bazasidagi jadval

Boshlash uchun ma’lumotlar bazasida pages jadvalini yaratamiz. Unga id, title va text ustunlarini qo‘shamiz. Keling, bu jadvalni ba’zi ma’lumotlar bilan PhpMyAdmin orqali to‘ldiramiz.

Model

Bitta yozuvni olish va barcha yozuvlarni olish usullari bilan model yaratamiz:

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

Marshrutlash

Keling, mos marshrutlashni amalga oshiramiz:

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

Controller

Keling, controller yaratamiz:

<?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 = 'Barcha sahifalar ro‘yxati'; $pages = (new Page) -> getAll(); return $this->render('page/all', [ 'pages' => $pages, 'h1' => $this->title ]); } } ?>

Ko‘rinishlar

one usuli uchun ko‘rinish yaratamiz:

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

all usuli uchun ko‘rinish yaratamiz:

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

Amaliy vazifalar

Faraz qilaylik, ma’lumotlar bazangizda mahsulotlar mavjud. Har bir mahsulot nom, narx va miqdor, tavsifni o‘z ichiga oladi. id bo‘yicha bitta mahsulotni va barcha mahsulotlarni chiqarishni nazariyada qilinganidek amalga oshiring.

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish