CakePHP - Vistas
La letra "V" en MVC es para Vistas. Las vistas son responsables de enviar la salida al usuario según la solicitud.View Classes es una forma poderosa de acelerar el proceso de desarrollo.
Ver plantillas
El archivo View Templates de CakePHP obtiene datos del controlador y luego procesa la salida para que se pueda mostrar correctamente al usuario. Podemos usar variables, varias estructuras de control en plantilla.
Los archivos de plantilla se almacenan en src/Template/, en un directorio que lleva el nombre del controlador que usa los archivos y el nombre de la acción a la que corresponde. Por ejemplo, elViewarchivo para el controlador de productos “view()” action, normalmente se encuentra en src / Template / Products / view.php.
En resumen, el nombre del controlador (ProductsController) es el mismo que el nombre de la carpeta (Productos) pero sin la palabra Controlador y el nombre de la acción / método (vista ()) del controlador (ProductsController) es el mismo que el nombre de el archivo Ver (view.php).
Ver variables
Las variables de vista son variables que obtienen el valor del controlador. Podemos usar tantas variables en las plantillas de vista como queramos. Podemos usar elset()método para pasar valores a variables en vistas. Estas variables de conjunto estarán disponibles tanto en la vista como en el diseño que representa su acción. La siguiente es la sintaxis delset() método.
Cake\View\View::set(string $var, mixed $value)
Este método toma dos argumentos: the name of the variable y its value.
Ejemplo
Realizar cambios en el config/routes.php archivo como se muestra en el siguiente programa.
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();
});
Crear un ProductsController.php archivar en src/Controller/ProductsController.php. Copie el siguiente código en el archivo del controlador.
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');
}
}
Crear un directorio Productos en src/Template y debajo de esa carpeta crea un Viewarchivo llamado view.php. Copie el siguiente código en ese archivo.
Value of variable is: <?php echo $Product_Name; ? >
Ejecute el ejemplo anterior visitando la siguiente URL.
http: // localhost / cakephp4 / template
Salida
La URL anterior producirá el siguiente resultado.