⊗ppMVUFmAE 19 of 35 menu

Áp dụng MVC trong PHP

Hãy cùng xem xét việc áp dụng tổng hợp tất cả kiến thức đã học. Giả sử, ví dụ, trên website của chúng ta có một số trang bài viết. Chúng ta muốn hiển thị một bài viết, hoặc hiển thị tất cả các bài viết. Hãy cùng xem xét cách thực hiện điều này trong framework của chúng ta.

Bảng trong CSDL

Đầu tiên hãy tạo bảng pages trong cơ sở dữ liệu. Thêm vào đó các cột id, titletext. Điền dữ liệu vào bảng này bằng một số dữ liệu bất kỳ thông qua PhpMyAdmin.

Model

Tạo một model với phương thức để lấy một bản ghi và phương thức để lấy tất cả các bản ghi:

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

Routing

Tạo routing tương ứng:

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

Controller

Tạo controller:

<?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 = 'Danh sách tất cả các trang'; $pages = (new Page) -> getAll(); return $this->render('page/all', [ 'pages' => $pages, 'h1' => $this->title ]); } } ?>

View

Tạo view cho phương thức one:

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

Tạo view cho phương thức all:

<h1><?= $h1; ?></h1> <div id="content"> <table> <tr> <th>id</th> <th>title</th> <th>liên kết</th> </tr> <?php foreach ($pages as $page): ?> <tr> <td><?= $page['id']; ?></td> <td><?= $page['title']; ?></td> <td><a href="/page/<?= $page['id']; ?>/">liên kết tới trang</td> </tr> <?php endforeach; ?> </table> </div>

Bài tập thực hành

Giả sử trong cơ sở dữ liệu của bạn có các sản phẩm. Mỗi sản phẩm chứa tên, giá, số lượng, mô tả. Hãy triển khai chức năng hiển thị một sản phẩm theo id và tất cả sản phẩm tương tự như đã làm trong phần lý thuyết.

Tiếng Việt
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ʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối