CakePHP - Elemente anzeigen

Bestimmte Teile der Webseiten werden auf mehreren Webseiten wiederholt, jedoch an verschiedenen Stellen. CakePHP kann uns helfen, diese wiederholten Teile wiederzuverwenden. Diese wiederverwendbaren Teile werden aufgerufenElements - help box, extra menu, usw. Ein Element ist im Grunde ein mini-view. Wir können auch Variablen in Elementen übergeben.

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

Es gibt drei Argumente für die obige Funktion:

  • Das erste Argument ist der Name der Vorlagendatei in der /src/Template/element/ Ordner.

  • Das zweite Argument ist das Datenarray, das der gerenderten Ansicht zur Verfügung gestellt werden soll.

  • Das dritte Argument betrifft das Array von Optionen. zB Cache.

Von den drei Argumenten ist das erste obligatorisch, während der Rest optional ist.

Beispiel

Erstellen Sie eine Elementdatei unter src/Template/element Verzeichnis aufgerufen helloworld.php. Kopieren Sie den folgenden Code in diese Datei.

src / Template / element / helloworld.php

<p>Hello World</p>

Erstellen Sie einen Ordner Elems beim src/Template und unter diesem Verzeichnis erstellen Sie eine ViewDatei namens index.php. Kopieren Sie den folgenden Code in diese Datei.

src / Template / Elems / index.php

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

Nehmen Sie Änderungen in der config/routes.php Datei wie im folgenden Programm gezeigt.

config / route.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();
});

Erstelle ein ElemsController.php Datei bei src/Controller/ElemsController.php. Kopieren Sie den folgenden Code in die Controller-Datei.

src / Controller / ElemsController.php

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

Führen Sie das obige Beispiel aus, indem Sie die folgende URL aufrufen: http: // localhost / cakephp4 / element-example

Ausgabe

Bei der Ausführung erhalten Sie über die obige URL die folgende Ausgabe.