Souvent, lors de la création de pages Web, nous souhaitons répéter certaines parties de pages dans d'autres pages. CakePHP a une telle facilité grâce à laquelle on peut étendre la vue dans une autre vue et pour cela, nous n'avons pas besoin de répéter le code.
La méthode extend() est utilisée pour étendre les vues dans le fichier View. Cette méthode prend un argument, c'est-à-dire le nom du fichier de vue avec le chemin. N'utilisez pas l'extension .ctp lorsque vous fournissez le nom du fichier View.
Apportez des modifications au fichier config/routes.php comme indiqué dans le programme suivant.
<?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(); });
Créez un fichier ExtendsController.php dans src/Controller/ExtendsController.php. Copiez le code suivant dans le fichier du contrôleur.
<?php namespace App\Controller; use App\Controller\AppController; class ExtendsController extends AppController{ public function index(){ } } ?>
Créez un répertoire Extends dans src/Template et sous ce dossier, créez un fichier View appelé header.php. Copiez le code suivant dans ce fichier.
<div align="center"> <h1>Common Header</h1> </div> <?= $this->fetch('content') ?>
Créez une autre View sous le répertoire Extends appelé index.php. Copiez le code suivant dans ce fichier. Ici, nous étendons la vue ci-dessus header.php.
<?php $this->extend('header'); ?> This is an example of extending view.
Exécutez l'exemple ci-dessus en visitant l'URL suivante http://localhost/cakephp4/extend
Lors de l'exécution, vous recevrez le résultat suivant.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!