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.