CakePHP - Visualizzazioni

La lettera "V" in MVC è per Views. Le viste sono responsabili dell'invio dell'output all'utente in base alla richiesta.View Classes è un modo potente per accelerare il processo di sviluppo.

Visualizza modelli

Il file Visualizza modelli di CakePHP riceve i dati dal controller e quindi esegue il rendering dell'output in modo che possa essere visualizzato correttamente all'utente. Possiamo usare variabili, varie strutture di controllo nel template.

I file modello vengono archiviati in src/Template/, in una directory denominata in base al controller che utilizza i file e denominata in base all'azione a cui corrisponde. Ad esempio, il fileViewfile per il controller dei prodotti “view()” action, normalmente si trova in src / Template / Products / view.php.

In breve, il nome del controller (ProductsController) è uguale al nome della cartella (Products) ma senza la parola Controller e il nome dell'azione / metodo (view ()) del controller (ProductsController) è uguale al nome di il file Visualizza (view.php).

Visualizza variabili

Le variabili di visualizzazione sono variabili che ottengono il valore dal controller. Possiamo usare quante variabili nei modelli di vista vogliamo. Possiamo usare il fileset()metodo per passare valori alle variabili nelle viste. Queste variabili di set saranno disponibili sia nella vista che nel layout che la tua azione esegue. La seguente è la sintassi diset() metodo.

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

Questo metodo richiede due argomenti: the name of the variable e its value.

Esempio

Apporta modifiche nel file config/routes.php file come mostrato nel seguente programma.

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();
});

Creare un ProductsController.php file in src/Controller/ProductsController.php. Copiare il codice seguente nel file del controller.

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');
   }
}

Crea una directory Prodotti in src/Template e sotto quella cartella crea un file Viewfile chiamato view.php. Copia il codice seguente in quel file.

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

Esegui l'esempio precedente visitando il seguente URL.

http: // localhost / cakephp4 / template

Produzione

L'URL sopra produrrà il seguente output.