PHP အင်ဂျင်ထဲရှိ route များတွင် parameter များစွာပါရှိခြင်း
ယခုကျွန်ုပ်တို့ဆိုဒ်တွင် အမျိုးအစားများ နှင့် ထိုအမျိုးအစားများနှင့်ဆိုင်သော စာမျက်နှာများရှိသည်ဆိုပါစို့။ အမျိုးအစားများဖြင့် ဇယားတစ်ခုဖန်တီးကြပါစို့။
| 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 |
ကျွန်ုပ်တို့၏ဆိုဒ်တွင် အမျိုးအစားအမျိုးမျိုးမှ စာမျက်နှာ slug များ
တူညီခြင်းကို ခွင့်ပြုထားပါသည်။ ၎င်းဆိုလိုသည်မှာ
URL တွင် အရင်ဆုံး အမျိုးအစား slug ကို ဖော်ပြရပါမည်၊
ထို့နောက်မှသာ စာမျက်နှာ slug ကို
ဤပုံစံအတိုင်းဖော်ပြရပါမည်။ /page/:category/:page,
ဤနေရာတွင် ကိုလံနှစ်ခုဖြင့် ပြသထားသောနေရာများသည်
ပြောင်းလဲနိုင်သော parameter များဖြစ်သည့်နေရာများဖြစ်သည်။
ကျွန်ုပ်တို့၏ဆိုဒ်အတွက် route များကို ရေးကြပါစို့။
<?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';
}
?>
ပထမ route ၏ လက်ခံခြောက်လုပ်ဆောင်သူတွင် တောင်းဆိုထားသော စာမျက်နှာကို ပြသပါမည်။
<?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;
?>
ဒုတိယ route ၏ လက်ခံခြောက်လုပ်ဆောင်သူတွင် ဖော်ပြထားသော အမျိုးအစားမှ စာမျက်နှာများ၏ စာရင်းကို ပြသပါမည်။
<?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 တွင်
parameter တွင်ဖော်ပြထားသော နိုင်ငံ၏
မြို့များ၏စာရင်းကို ဖော်ပြပါမည်၊
ထို့နောက် လိပ်စာ /:country/:city တွင်
ဖော်ပြထားသောမြို့၏ ဖော်ပြချက်ကို ဖော်ပြပါမည်။