⊗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çeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш