Учебники

CakePHP — Расширение просмотров

Много раз, делая веб-страницы, мы хотим повторить определенную часть страниц на других страницах. 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 / продлить

Выход

После выполнения вы получите следующий вывод.