Bei der Erstellung von Webseiten möchten wir oft bestimmte Teile von Seiten auf anderen Seiten wiederholen. CakePHP verfügt über eine solche Funktion, mit der man die Ansicht in eine andere Ansicht erweitern kann, und dafür müssen wir den Code nicht noch einmal wiederholen.
Die Methode extend() wird verwendet, um Ansichten in der Datei View zu erweitern. Diese Methode benötigt ein Argument, nämlich den Namen der Ansichtsdatei mit Pfad. Verwenden Sie nicht die Erweiterung .ctp, während Sie den Namen der Ansichtsdatei angeben.
Nehmen Sie Änderungen in der Datei config/routes.php vor, wie im folgenden Programm gezeigt.
<?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(); });
Erstellen Sie eine ExtendsController.php-Datei unter src/Controller/ExtendsController.php. Kopieren Sie den folgenden Code in die Controller-Datei.
<?php namespace App\Controller; use App\Controller\AppController; class ExtendsController extends AppController{ public function index(){ } } ?>
Erstellen Sie ein Verzeichnis Extends unter src/Template und erstellen Sie unter diesem Ordner eine View-Datei mit dem Namen header.php. Kopieren Sie den folgenden Code in diese Datei.
<div align="center"> <h1>Common Header</h1> </div> <?= $this->fetch('content') ?>
Erstellen Sie eine weitere Ansicht im Verzeichnis Extends mit dem Namen index.php. Kopieren Sie den folgenden Code in diese Datei. Hier erweitern wir die obige Ansicht header.php.
<?php $this->extend('header'); ?> This is an example of extending view.
Führen Sie das obige Beispiel aus, indem Sie die folgende URL besuchen: http://localhost/cakephp4/extend
Bei der Ausführung erhalten Sie die folgende Ausgabe.
Das obige ist der detaillierte Inhalt vonCakePHP erweitert Ansichten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!