ชื่อเรื่องหน้าใน MVC ใน PHP
ในไฟล์เทมเพลตยังมีตัวแปร
$title, ซึ่งเก็บชื่อเรื่องของหน้า
เห็นได้ชัดว่าชื่อเรื่องนี้จะ
ต่างกันสำหรับแต่ละหน้า มาดูการใช้
ตัวแปรนี้ตามวัตถุประสงค์:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title><?= $title ?></title>
</head>
<body>
...
</body>
</html>
เพื่อกำหนดชื่อเรื่องสำหรับ
วิวหนึ่ง ๆ จำเป็นต้องเขียน
ลงในคุณสมบัติ title ในคอนโทรลเลอร์:
<?php
namespace Project\Controllers;
use Core\Controller;
class TestController extends Controller
{
public function act()
{
// กำหนดชื่อเรื่อง:
$this->title = 'แอ็กชัน act ของคอนโทรลเลอร์ test';
// เรนเดอร์วิว โดยส่งข้อมูลบางส่วน:
return $this->render('test/act', [
'var1' => 'eee',
'var2' => 'bbb',
'var3' => 'kkk',
]);
}
}
?>
ปรับเปลี่ยนไฟล์เทมเพลตและคอนโทรลเลอร์ทั้งหมดของคุณ เพื่อให้แต่ละวิวแสดงชื่อเรื่อง ของตัวเอง
ให้ในคอนโทรลเลอร์ Page มีอาร์เรย์ต่อไปนี้
:
<?php
$this->pages = [
1 => ['title'=>'page 1', 'text'=>'text 1'],
2 => ['title'=>'page 2', 'text'=>'text 2'],
3 => ['title'=>'page 3', 'text'=>'text 3'],
];
?>
สร้างแอ็กชัน show, ซึ่งจะ
แสดงหน้าที่กำหนด ให้ในวิว
ข้อความของหน้าจากคีย์ 'text'
ถูกห่อด้วยย่อหน้า และข้อความจากคีย์ 'title'
กลายเป็นชื่อเรื่องหน้า