CakePHP - Visualizações

A letra “V” no MVC é para visualizações. As visualizações são responsáveis ​​por enviar a saída ao usuário com base na solicitação.View Classes é uma maneira poderosa de acelerar o processo de desenvolvimento.

Ver modelos

O arquivo View Templates do CakePHP obtém dados do controlador e então renderiza a saída para que possa ser exibida corretamente para o usuário. Podemos usar variáveis, várias estruturas de controle no modelo.

Os arquivos de modelo são armazenados em src/Template/, em um diretório com o nome do controlador que usa os arquivos e com o nome da ação a que corresponde. Por exemplo, oViewarquivo para o controlador de Produtos “view()” ação, normalmente seria encontrada em src / Template / Products / view.php.

Resumindo, o nome do controlador (ProductsController) é igual ao nome da pasta (Products), mas sem a palavra Controller e o nome da ação / método (view ()) do controlador (ProductsController) é igual ao nome de o arquivo de visualização (view.php).

Ver Variáveis

Variáveis ​​de visualização são variáveis ​​que obtêm o valor do controlador. Podemos usar quantas variáveis ​​quisermos nos modelos de visão. Podemos usar oset()método para passar valores para variáveis ​​em visualizações. Essas variáveis ​​definidas estarão disponíveis na visualização e no layout que sua ação renderiza. A seguir está a sintaxe doset() método.

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

Este método leva dois argumentos - the name of the variable e its value.

Exemplo

Faça alterações no config/routes.php arquivo conforme mostrado no programa a seguir.

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

Criar uma ProductsController.php arquivo em src/Controller/ProductsController.php. Copie o código a seguir no arquivo do 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');
   }
}

Crie um diretório de Produtos em src/Template e nessa pasta crie um Viewarquivo chamado view.php. Copie o código a seguir nesse arquivo.

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

Execute o exemplo acima visitando o seguinte URL.

http: // localhost / cakephp4 / template

Resultado

O URL acima produzirá a seguinte saída.