CakePHP - Afficher les éléments

Certaines parties des pages Web sont répétées sur plusieurs pages Web, mais à des emplacements différents. CakePHP peut nous aider à réutiliser ces parties répétées. Ces pièces réutilisables sont appeléesElements - help box, extra menu, etc. Un élément est fondamentalement un mini-view. Nous pouvons également passer des variables dans des éléments.

Cake\View\View::element(string $elementPath, array $data, array $options =[]

Il y a trois arguments à la fonction ci-dessus comme suit -

  • Le premier argument est le nom du fichier modèle dans le /src/Template/element/ dossier.

  • Le deuxième argument est le tableau de données à rendre disponible pour la vue rendue.

  • Le troisième argument concerne le tableau d'options. par exemple cache.

Sur les 3 arguments, le premier est obligatoire, tandis que les autres sont facultatifs.

Exemple

Créez un fichier d'élément à src/Template/element répertoire appelé helloworld.php. Copiez le code suivant dans ce fichier.

src / Template / element / helloworld.php

<p>Hello World</p>

Créer un dossier Elems à src/Template et sous ce répertoire, créez un Viewfichier appelé index.php. Copiez le code suivant dans ce fichier.

src / Template / Elems / index.php

Element Example: <?php echo $this->element('helloworld'); ?>

Apportez des modifications au config/routes.php fichier comme indiqué dans le programme suivant.

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('/element-example',['controller'=>'Elems','action'=>'index']);
   $builder->fallbacks();
});

Créé un ElemsController.php déposer à src/Controller/ElemsController.php. Copiez le code suivant dans le fichier du contrôleur.

src / Controller / ElemsController.php

<?php
   namespace App\Controller;
   use App\Controller\AppController;
   class ElemsController extends AppController{
      public function index(){
      }
   }
?>

Exécutez l'exemple ci-dessus en visitant l'URL suivante http: // localhost / cakephp4 / element-example

Production

Lors de l'exécution, l'URL ci-dessus vous donnera la sortie suivante.