Tiêu đề trang trong MVC trong PHP
Trong file mẫu cũng có sẵn biến
$title, chứa tiêu đề trang.
Rõ ràng là tiêu đề này cũng sẽ
khác nhau đối với các trang khác nhau. Hãy sử dụng
biến này đúng mục đích:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title><?= $title ?></title>
</head>
<body>
...
</body>
</html>
Để đặt tiêu đề cho một
view cụ thể, cần phải ghi
nó vào thuộc tính title trong controller:
<?php
namespace Project\Controllers;
use Core\Controller;
class TestController extends Controller
{
public function act()
{
// Đặt tiêu đề:
$this->title = 'Hành động act của controller test';
// Render view, truyền một số dữ liệu:
return $this->render('test/act', [
'var1' => 'eee',
'var2' => 'bbb',
'var3' => 'kkk',
]);
}
}
?>
Sửa đổi file mẫu và tất cả các controller của bạn để mỗi view hiển thị tiêu đề riêng của nó.
Giả sử trong controller Page có mảng
sau:
<?php
$this->pages = [
1 => ['title'=>'page 1', 'text'=>'text 1'],
2 => ['title'=>'page 2', 'text'=>'text 2'],
3 => ['title'=>'page 3', 'text'=>'text 3'],
];
?>
Tạo một hành động show, để
hiển thị một trang được chỉ định. Giả sử trong view,
văn bản trang từ khóa 'text' sẽ được
bọc trong một đoạn văn, còn văn bản từ khóa 'title'
sẽ trở thành tiêu đề trang.