⊗ppPmSDRSP 446 of 447 menu

Nhiều tham số trong route của engine PHP

Bây giờ giả sử trang web của chúng ta có các danh mục và các trang thuộc về những danh mục này. Hãy tạo bảng với các danh mục:

categories
id slug name
1 first-category name1
2 second-category name2

Và bảng với các trang:

pages
id slug title content category_id
1 my-first-page title1 <div> content1 </div> 1
2 my-second-page title2 <div> content2 </div> 1
3 my-third-page title3 <div> content3 </div> 2

Trên trang web của chúng ta, chúng ta cho phép các slug của trang từ các danh mục khác nhau trùng nhau. Điều này có nghĩa là trong URL chúng ta phải chỉ định trước slug của danh mục, sau đó đến slug của trang theo sơ đồ như sau: /page/:category/:page, trong đó dấu hai chấm chỉ ra các vị trí mà các tham số thay đổi sẽ nằm ở đó.

Hãy viết các route cho trang web của chúng ta:

<?php $route = '^/page/(?<catSlug>[a-z0-9_-]+)/(?<pageSlug>[a-z0-9_-]+) ; if (preg_match("#$route#", $url, $params)) { $page = include 'view/page/show.php'; } $route = '^/page/(?<catSlug>[a-z0-9_-]+) ; if (preg_match("#$route#", $url, $params)) { $page = include 'view/page/category.php'; } $route = '^/ ; if (preg_match("#$route#", $url, $params)) { $page = include 'view/page/all.php'; } ?>

Trong trình xử lý của route đầu tiên, chúng ta sẽ hiển thị trang được yêu cầu:

<?php $catSlug = $params['catSlug']; $pageSlug = $params['pageSlug']; $query = "SELECT pages.title, pages.content FROM pages LEFT JOIN category ON category.id=pages.category_id WHERE pages.slug='$pageSlug' AND category.slug='$catSlug'"; $res = mysqli_query($link, $query) or die(mysqli_error($link)); $page = mysqli_fetch_assoc($res); return $page; ?>

Trong trình xử lý của route thứ hai, chúng ta sẽ hiển thị danh sách các trang từ danh mục được chỉ định:

<?php $catSlug = $params['catSlug']; $query = "SELECT pages.slug, pages.title FROM pages LEFT JOIN category ON category.id=pages.category_id WHERE category.slug='$catSlug'"; $res = mysqli_query($link, $query) or die(mysqli_error($link)); for ($data = []; $row = mysqli_fetch_assoc($res); $data[] = $row); $content = ''; foreach ($data as $page) { $content .= ' <div> <a href="/page/' . $catSlug . '/' . $page['slug'] . '">' . $page['title'] . '</a> </div> '; } $page = [ 'title' => 'danh sách tất cả các trang của danh mục ' . $catSlug, 'content' => $content ]; return $page; ?>

Giả sử bạn có một trang web với các thành phố và quốc gia. Giả sử tại địa chỉ / hiển thị danh sách tất cả các quốc gia, tại địa chỉ /:country hiển thị danh sách các thành phố của quốc gia được chỉ định trong tham số, và tại địa chỉ /:country/:city là mô tả của thành phố được chỉ định.

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