- CakePHP 教程
- CakePHP - 首頁
- CakePHP - 概述
- CakePHP - 安裝
- CakePHP - 資料夾結構
- CakePHP - 專案配置
- CakePHP - 路由
- CakePHP - 控制器
- CakePHP - 檢視
- CakePHP - 擴充套件檢視
- CakePHP - 檢視元素
- CakePHP - 檢視事件
- CakePHP - 資料庫操作
- CakePHP - 檢視記錄
- CakePHP - 更新記錄
- CakePHP - 刪除記錄
- CakePHP - 服務
- CakePHP - 錯誤與異常處理
- CakePHP - 日誌記錄
- CakePHP - 表單處理
- CakePHP - 國際化
- CakePHP - 會話管理
- CakePHP - Cookie 管理
- CakePHP - 安全性
- CakePHP - 驗證
- CakePHP - 建立驗證器
- CakePHP - 分頁
- CakePHP - 日期和時間
- CakePHP - 檔案上傳
- CakePHP 有用資源
- CakePHP - 快速指南
- CakePHP - 有用資源
- CakePHP - 討論
CakePHP - 擴充套件檢視
很多時候,在製作網頁時,我們希望在其他頁面中重複頁面的某些部分。CakePHP 提供了這樣的功能,可以將一個檢視擴充套件到另一個檢視中,這樣就無需重複程式碼。
extend() 方法用於在View 檔案中擴充套件檢視。此方法接受一個引數,即帶有路徑的檢視檔名。提供檢視檔名時,請勿使用副檔名 .ctp。
示例
按照以下程式所示修改 config/routes.php 檔案。
config/routes.php
<?php
use Cake\Http\Middleware\CsrfProtectionMiddleware;
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;
$routes->setRouteClass(DashedRoute::class);
$routes->scope('/', function (RouteBuilder $builder) {
$builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
'httpOnly' => true,
]));
$builder->applyMiddleware('csrf');
$builder->connect('extend',['controller'=>'Extends','action'=>'index']);
$builder->fallbacks();
});
在src/Controller/目錄下建立一個名為ExtendsController.php的檔案。將以下程式碼複製到控制器檔案中。
src/Controller/ExtendsController.php
<?php
namespace App\Controller;
use App\Controller\AppController;
class ExtendsController extends AppController{
public function index(){
}
}
?>
在src/Template目錄下建立一個名為Extends的目錄,並在該目錄下建立一個名為header.php的View檔案。將以下程式碼複製到該檔案中。
src/Template/Extends/header.php
<div align="center">
<h1>Common Header</h1>
</div>
<?= $this->fetch('content') ?>
在Extends目錄下建立另一個名為index.php的View檔案。將以下程式碼複製到該檔案中。在這裡,我們正在擴充套件上面的檢視header.php。
src/Template/Extends/index.php
<?php $this->extend('header'); ?>
This is an example of extending view.
訪問以下 URL https:///cakephp4/extend 來執行上述示例。
輸出
執行後,您將收到以下輸出。
廣告