CakePHP - Estensione delle visualizzazioni
Molte volte, mentre creiamo pagine web, vogliamo ripetere alcune parti di pagine in altre pagine. CakePHP ha una tale facilità con cui si può estendere la vista in un'altra vista e per questo non è necessario ripetere nuovamente il codice.
Il extend() viene utilizzato per estendere le viste in Viewfile. Questo metodo accetta un argomento, ovvero il nome del file di visualizzazione con percorso. Non utilizzare l'estensione .ctp mentre fornisci il nome del file di visualizzazione.
Esempio
Apporta le modifiche al file config / routes.php come mostrato nel seguente programma.
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();
});
Creare un ExtendsController.php file in src/Controller/ExtendsController.php. Copiare il codice seguente nel file del controller.
src / Controller / ExtendsController.php
<?php
namespace App\Controller;
use App\Controller\AppController;
class ExtendsController extends AppController{
public function index(){
}
}
?>
Crea una directory Extends a src/Template e sotto quella cartella crea un file Viewfile chiamato header.php. Copia il codice seguente in quel file.
src / Template / Extends / header.php
<div align="center">
<h1>Common Header</h1>
</div>
<?= $this->fetch('content') ?>
Creane un altro View sotto Extends directory chiamata index.php.Copia il codice seguente in quel file. Qui stiamo estendendo la vista di cui sopraheader.php.
src / Template / Extends / index.php
<?php $this->extend('header'); ?>
This is an example of extending view.
Esegui l'esempio precedente visitando il seguente URL http: // localhost / cakephp4 / extended
Produzione
Dopo l'esecuzione, riceverai il seguente output.