Много раз, делая веб-страницы, мы хотим повторить определенную часть страниц на других страницах. CakePHP имеет такое средство, с помощью которого можно расширить представление в другом представлении, и для этого нам не нужно повторять код снова. Метод extend () используется для расширения представлений в файле View . Этот метод принимает один аргумент, т. Е. Имя файла представления с путем. Не используйте расширение .ctp, указав имя файла View.
пример
Внесите изменения в файл config / rout.php, как показано в следующей программе.
конфиг / routes.php
<?php use Cake\Core\Plugin; use Cake\Routing\RouteBuilder; use Cake\Routing\Router; Router::defaultRouteClass('DashedRoute'); Router::scope('/', function (RouteBuilder $routes) { $routes->connect('extend',['controller'=>'Extends','action'=>'index']); $routes->fallbacks('DashedRoute'); }); Plugin::routes();
Создайте файл ExtendsController.php в 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 и в этой папке создайте файл View с именем header.ctp . Скопируйте следующий код в этот файл.
SRC / Template / Расширяет / header.ctp
<div align = "center"><h1>Common Header</h1></div> <?= $this->fetch('content') ?>
Создайте другое представление в каталоге Extends с именем index.ctp . Скопируйте следующий код в этот файл. Здесь мы расширяем представленное выше представление header.ctp .
SRC / Template / Расширяет / index.ctp
<?php $this->extend('header'); ?> This is an example of extending view.
Выполните приведенный выше пример, посетив следующий URL.
HTTP: // локальный: 85 / CakePHP / продлить
Выход
После выполнения вы получите следующий вывод.