CakePHP - Vues

La lettre «V» dans le MVC est pour les vues. Les vues sont responsables de l'envoi de la sortie à l'utilisateur en fonction de la demande.View Classes est un moyen puissant d'accélérer le processus de développement.

Afficher les modèles

Le fichier View Templates de CakePHP récupère les données du contrôleur, puis rend la sortie afin qu'elle puisse être affichée correctement à l'utilisateur. Nous pouvons utiliser des variables, diverses structures de contrôle dans le modèle.

Les fichiers de modèle sont stockés dans src/Template/, dans un répertoire nommé d'après le contrôleur qui utilise les fichiers et nommé d'après l'action à laquelle il correspond. Par exemple, leViewfichier pour le contrôleur de produits “view()” action, se trouverait normalement dans src / Template / Products / view.php.

En bref, le nom du contrôleur (ProductsController) est le même que le nom du dossier (Products) mais sans le mot Controller et le nom de l'action / méthode (view ()) du contrôleur (ProductsController) est le même que le nom de le fichier View (view.php).

Afficher les variables

Les variables de vue sont des variables qui obtiennent la valeur du contrôleur. Nous pouvons utiliser autant de variables dans les modèles de vue que nous le souhaitons. Nous pouvons utiliser leset()méthode pour transmettre des valeurs aux variables dans les vues. Ces variables d'ensemble seront disponibles à la fois dans la vue et dans la mise en page que votre action rend. Voici la syntaxe duset() méthode.

Cake\View\View::set(string $var, mixed $value)

Cette méthode prend deux arguments - the name of the variable et its value.

Exemple

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) {
   // Register scoped middleware for in scopes.
   $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
      'httpOnly' => true,
   ]));
   $builder->applyMiddleware('csrf');
   $builder->connect('template',['controller'=>'Products','action'=>'view']);
   $builder->fallbacks();
});

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

src/Controller/ProductsController.php

<?php
declare(strict_types=1);
namespace App\Controller;
use Cake\Core\Configure;
use Cake\Http\Exception\ForbiddenException;
use Cake\Http\Exception\NotFoundException;
use Cake\Http\Response;
use Cake\View\Exception\MissingTemplateException;
class ProductsController extends AppController {
public function view(){
      $this->set('Product_Name','XYZ');
   }
}

Créez un répertoire Produits sur src/Template et sous ce dossier, créez un Viewfichier appelé view.php. Copiez le code suivant dans ce fichier.

Value of variable is: <?php echo $Product_Name; ? >

Exécutez l'exemple ci-dessus en visitant l'URL suivante.

http: // localhost / cakephp4 / template

Production

L'URL ci-dessus produira la sortie suivante.