PHP එන්ජිමේ මාර්ගවල පරාමිති කිහිපයක්
අපගේ වෙබ් අඩවියේ දැන් කාණ්ඩ ඇතැයි සිතමු සහ මෙම කාණ්ඩවලට අයත් පිටු. කාණ්ඩ සමඟ වගුවක් සාදමු:
| id | slug | name |
|---|---|---|
| 1 | first-category | name1 |
| 2 | second-category | name2 |
සහ පිටු සමඟ වගුව:
| 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 |
අපගේ වෙබ් අඩවියේ අපි විවිධ කාණ්ඩවල සිට පිටු ස්ලග් එකිනෙකා සමඟ ගැලපීමට ඉඩ දෙමු. මෙය
අදහස් කරන්නේ URL හි අපි මුලින්ම සඳහන් කළ යුතු බවයි
කාණ්ඩයේ ස්ලග්, ඉන්පසු පිටුවේ ස්ලග් මේ ආකාරයට
යෝජනා ක්රමය: /page/:category/:page,
කොලන් මගින් ස්ථාන සඳහන් කර ඇති තැන
වෙනස් වන පරාමිති වේ.
අපගේ වෙබ් අඩවිය සඳහා මාර්ග ලියමු:
<?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';
}
?>
පළමු මාර්ගයේ හැසිරවීමේදී අපි පෙන්වන්නෙමු ඉල්ලූ පිටුව:
<?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;
?>
දෙවන මාර්ගයේ හැසිරවීමේදී අපි පෙන්වන්නෙමු සඳහන් කළ කාණ්ඩයෙන් පිටු ලැයිස්තුව:
<?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' => 'කාණ්ඩයේ සියලුම පිටු ලැයිස්තුව ' . $catSlug,
'content' => $content
];
return $page;
?>
ඔබට නගර සහ රටවල් සහිත වෙබ් අඩවියක් ඇතැයි සිතමු.
ලිපිනයේ යැයි සිතමු / සියලුම රටවල ලැයිස්තුවක් පෙන්වයි
ලිපිනයේ යැයි සිතමු /:country
පරාමිතියේ සඳහන් කර ඇති රටේ නගර ලැයිස්තුවක් පෙන්වයි
රට, සහ ලිපිනයේ යැයි සිතමු /:country/:city
සඳහන් කළ නගරයේ විස්තරය.