CakePHP - Mở rộng Lượt xem

Nhiều lần, trong khi tạo trang web, chúng ta muốn lặp lại một phần nào đó của trang trong các trang khác. CakePHP có tiện ích như vậy mà người ta có thể mở rộng chế độ xem ở chế độ xem khác và đối với điều này, chúng ta không cần lặp lại mã một lần nữa.

Các extend() được sử dụng để mở rộng các chế độ xem trong Viewtập tin. Phương thức này nhận một đối số, tức là tên của tệp dạng xem với đường dẫn. Không sử dụng phần mở rộng .ctp trong khi cung cấp tên của tệp Xem.

Thí dụ

Thực hiện các thay đổi trong tệp config / route.php như được hiển thị trong chương trình sau.

config / route.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();
});

Tạo ra một ExtendsController.php nộp tại src/Controller/ExtendsController.php. Sao chép mã sau vào tệp bộ điều khiển.

src / Controller / ExtendsController.php

<?php
   namespace App\Controller;
   use App\Controller\AppController;
   class ExtendsController extends AppController{
      public function index(){
      }
   }
?>

Tạo một thư mục Extends tại src/Template và trong thư mục đó, tạo một Viewtệp được gọi là header.php. Sao chép mã sau vào tệp đó.

src / Template / Extends / header.php

<div align="center">
   <h1>Common Header</h1>
</div>
<?= $this->fetch('content') ?>

Tạo ra một cái khác View Dưới Extends thư mục được gọi là index.php.Sao chép mã sau vào tệp đó. Ở đây, chúng tôi đang mở rộng quan điểm trênheader.php.

src / Template / Extends / index.php

<?php $this->extend('header'); ?>
This is an example of extending view.

Thực hiện ví dụ trên bằng cách truy cập URL sau http: // localhost / cakephp4 / extension

Đầu ra

Sau khi thực hiện, bạn sẽ nhận được kết quả sau.