我正在MVC中開發我的項目,並且希望生成動態頁面標題。我的標題,內容和頁腳分爲3個不同的視圖文件。我想從內容視圖文件生成頁面標題並將其傳遞給模型,然後將該模型傳遞給標題視圖文件。我嘗試了不同的東西,但都沒有成功。這裏是我的代碼:如何在MVC項目中生成動態頁面標題
控制器page.php文件
class Page extends Controller
{
public $pageTitle;
public function setPageTitle($title)
{
$this->pageTitle = $title;
}
public function getPageTitle()
{
return $this->pageTitle;
}
/**
* Open file from view/pages/ folder.
* @param String
*/
public function index($page = 'about')
{
if(!file_exists(ROOT.'/app/view/pages/'.$page.'.php'))
{
//redirect 404
}
$data['title'] = self::getPageTitle();
$this->view('header', $data);
$this->view('pages/'.$page);
$this->view('footer');
}
}
視圖的header.php
<!DOCTYPE html>
<html>
<head>
<title><?= $data['title'] ?></title>
</head>
<body>
視圖about.php
<?php
$controller = new Page;
$controller->setPageTitle('title of the page about us');
?>
content about us, contact form, etc.
$ data始終返回NULL。有任何想法嗎?
它應該採取一個數組。實際上,當我在** controller page.php **中var_dump'$ data'時,它甚至在那裏返回null。但是,當我在'getPageTitle'方法中var_dump(它在同一個文件中)時,它的值就像它應該是。出於某種原因,在'index'方法中,'$ pageTitle'正在失去它的價值。 – user3628807
你是從'about.php'還是從別的地方調用'page.php - > index()'? – smtw