CakePHP - Manipulação de Formulários

O CakePHP fornece várias tags internas para lidar com formulários HTML de forma fácil e segura. Como muitos outros frameworks PHP, os principais elementos de HTML também são gerados usando o CakePHP. A seguir estão as várias funções usadas para gerar elementos HTML.

As seguintes funções são usadas para generate select options -

Sintaxe _selectOptions (array $ elementsarray () , array $ parentsarray () , boolean $ showParentsnull , array $ attributearray () )
Parâmetros
  • Elementos para formatar

  • Pais para OPTGROUP

  • Mostrar aos pais

  • Atributos HTML

Devoluções matriz
Descrição Retorna uma matriz de elementos OPTION / OPTGROUP formatados

As seguintes funções são usadas to generate HTML select element.

Sintaxe select (string $ fieldName, array $ options array (), array $ attribute array ())
Parâmetros

Atributo de nome do SELECT

Matriz dos elementos OPTION (como 'valor' => pares 'Texto') a serem usados ​​no elemento SELECT.

Devoluções Elemento SELECT formatado.
Descrição Retorna um elemento SELECT formatado.

As seguintes funções são usadas to generate button na página HTML.

Sintaxe

Botão (string $ title, array $ optionsarray ())

Parâmetros
  • A legenda do botão. Não é automaticamente codificado em HTML.

  • Matriz de opções e atributos HTML

Devoluções Tag do botão HTML.
Descrição

Cria um <button>tag. O atributo de tipo padrão étype="submit". Você pode alterá-lo para um valor diferente usando$options['type'].

As seguintes funções são usadas to generate checkbox na página HTML.

Sintaxe Caixa de seleção (string $ fieldName, array $ optionsarray ())
Parâmetros
  • Nome de um campo, como este "Modelname.fieldname"

  • Matriz de atributos HTML. As opções possíveis são valor, verificado, hiddenField, desativado, padrão.

Devoluções Um elemento de entrada de texto HTML.
Descrição Cria um widget de entrada de caixa de seleção.

As seguintes funções são usadas to create form na página HTML.

Sintaxe criar (misturado $ modelnull , array $ optionsarray () )
Parâmetros
  • O nome do modelo para o qual o formulário está sendo definido. Deve incluir o nome do plugin para modelos de plugin. por exemplo, ContactManager.Contact. Se um array é passado e o argumento $ options está vazio, o array será usado como opções. Se falso, nenhum modelo é usado.

  • Uma matriz de opções e atributos html. As opções possíveis são type, action, url, default, onsubmit, inputDefaults, encoding.

Devoluções

Uma tag FORM de abertura formatada.

Descrição Retorna um elemento HTML FORM.

As seguintes funções são usadas para provide file uploading functionality na página HTML.

Sintaxe

arquivo (string $ fieldName, array $ optionsarray ())

Parâmetros
  • Nome de um campo, no formato "Modelname.fieldname"

  • Matriz de atributos HTML.

Devoluções

Uma entrada de arquivo gerada.

Descrição

Cria widget de entrada de arquivo.

As seguintes funções são usadas para criar hidden element na página HTML.

Sintaxe

escondido (string $ fieldName , array $ optionsarray () )

Parâmetros
  • Nome de um campo, na forma de "Modelname.fieldname"

  • Matriz de atributos HTML.

Devoluções

Uma entrada oculta gerada

Descrição

Cria um campo de entrada oculto

As seguintes funções são usadas para gerar input element na página HTML.

Sintaxe

Entrada (string $ fieldName, array $ options array ())

Parâmetros
  • Deve ser "Modelname.fieldname"

  • Cada tipo de entrada tem opções diferentes

Devoluções

Widget de formulário preenchido

Descrição

Gera um elemento de entrada de formulário completo com div de rótulo e wrapper

As seguintes funções são usadas para gerar radio button na página HTML.

Sintaxe

Radio (string $ fieldName , array $ optionsarray () , array $ attributearray () )

Parâmetros
  • Nome de um campo, como este "Modelname.fieldname"

  • Matriz de opções de botão de rádio.

  • Matriz de atributos HTML e atributos especiais acima.

Devoluções Conjunto de widget de rádio concluído
Descrição Cria um conjunto de widgets de rádio. Irá criar uma legenda e um conjunto de campos por padrão. Use $ options para controlar isso.

As seguintes funções são usadas para gerar submit botão na página HTML.

Sintaxe Enviar (string $ caption null, array $ options array ())
Parâmetros
  • O rótulo que aparece no botão OU se a string contém: // ou a extensão .jpg, .jpe, .jpeg, .gif, .png. Use uma imagem se a extensão existir, E o primeiro caractere for /, a imagem for relativa a webroot, OU se o primeiro caractere não for /, a imagem for relativa a webroot / img.

  • Variedade de opções. As opções possíveis são div, before, after, type etc.

Devoluções

Um botão de envio de HTML

Descrição Cria um elemento de botão de envio. Este método irá gerar elementos <input /> que podem ser usados ​​para enviar e redefinir formulários usando $ options. Os envios de imagens podem ser criados fornecendo um caminho de imagem para $ caption.

As seguintes funções são usadas to generate textarea element na página HTML.

Sintaxe

Textarea (string $ fieldName, array $ options array ())

Parâmetros
  • Nome de um campo, no formato "Modelname.fieldname"

  • Matriz de atributos HTML, opção especial como escape

Devoluções Um elemento de entrada de texto HTML gerado
Descrição Cria um widget textarea

Exemplo

Faça alterações no config/routes.php arquivo conforme mostrado no código 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) {
   $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
      'httpOnly' => true,
   ]));
   $builder->applyMiddleware('csrf');
   //$builder->connect('/pages',['controller'=>'Pages','action'=>'display', 'home']);
   $builder->connect('register',['controller'=>'Registrations','action'=>'index']);
   $builder->fallbacks();
});

Criar uma RegistrationsController.php arquivo em

src/Controller/RegistrationsController.php. Copie o código a seguir no arquivo do controlador.

src/Controller/RegistrationsController.php

<?php
   namespace App\Controller;
   use App\Controller\AppController;
   class RegistrationsController extends AppController{
      public function index(){
         $country = array('India','United State of America','United Kingdom');
         $this->set('country',$country);
         $gender = array('Male','Female');
         $this->set('gender',$gender);
      }
   }
?>

Crie um diretório Registrations em src/Template e nesse diretório, crie um View arquivo chamado index.php. Copie o código a seguir nesse arquivo.

src/Template/Registrations/index.php

<?php
   echo $this->Form->create(NULL,array('url'=>'/register'));
   echo '<label for="country">Country</label>';
   echo $this->Form->select('country',$country);
   echo '<label for="gender">Gender</label>';
   echo $this->Form->radio('gender ',$gender);
   echo '<label for="address">Address</label>';
   echo $this->Form->textarea('address');
   echo $this->Form->file('profilepic');
   echo '<div>'.$this->Form->checkbox('terms').
      '<label for="country">Terms ∓ Conditions</label></div>';
   echo $this->Form->button('Submit');
   echo $this->Form->end();
?>

Execute o exemplo acima visitando o seguinte URL -

http: // localhost / cakephp4 / register

Resultado

Após a execução, você receberá a seguinte saída.