CakePHP - Manejo de formularios

CakePHP proporciona varias etiquetas integradas para manejar formularios HTML de manera fácil y segura. Como muchos otros frameworks PHP, los elementos principales de HTML también se generan usando CakePHP. A continuación se muestran las diversas funciones que se utilizan para generar elementos HTML.

Las siguientes funciones se utilizan para generate select options -

Sintaxis _selectOptions (matriz $ matriz de elementos () , matriz $ matriz de padres () , booleana $ showParentsnull , matriz $ matriz de atributos () )
Parámetros
  • Elementos a formatear

  • Padres de OPTGROUP

  • Ya sea para mostrar a los padres

  • Atributos HTML

Devoluciones formación
Descripción Devuelve una matriz de elementos OPTION / OPTGROUP formateados

Se utilizan las siguientes funciones to generate HTML select element.

Sintaxis select (cadena $ fieldName, matriz $ opciones matriz (), matriz $ atributos matriz ())
Parámetros

Atributo de nombre del SELECT

Matriz de los elementos OPTION (como 'valor' => pares de 'Texto') que se utilizarán en el elemento SELECT.

Devoluciones Elemento SELECT formateado.
Descripción Devuelve un elemento SELECT formateado.

Se utilizan las siguientes funciones to generate button en la página HTML.

Sintaxis

Botón (cadena $ título, matriz $ opcionesarray ())

Parámetros
  • El título del botón. No codificado automáticamente en HTML.

  • Matriz de opciones y atributos HTML

Devoluciones Etiqueta de botón HTML.
Descripción

Crea un <button>etiqueta. El atributo de tipo por defecto estype="submit". Puede cambiarlo a un valor diferente usando$options['type'].

Se utilizan las siguientes funciones to generate checkbox en la página HTML.

Sintaxis Casilla de verificación (cadena $ fieldName, matriz $ optionsarray ())
Parámetros
  • Nombre de un campo, como este "Modelname.fieldname"

  • Matriz de atributos HTML. Las opciones posibles son valor, marcado, campo oculto, deshabilitado, predeterminado.

Devoluciones Un elemento de entrada de texto HTML.
Descripción Crea un widget de entrada de casilla de verificación.

Se utilizan las siguientes funciones to create form en la página HTML.

Sintaxis crear ( $ modelnull mixto , array $ optionsarray () )
Parámetros
  • El nombre del modelo para el que se define el formulario. Debe incluir el nombre del complemento para los modelos de complemento. por ejemplo, ContactManager.Contact. Si se pasa una matriz y el argumento $ options está vacío, la matriz se utilizará como opciones. Si es falso, no se utiliza ningún modelo.

  • Una serie de opciones y atributos html. Las opciones posibles son type, action, url, default, onsubmit, inputDefaults, encoding.

Devoluciones

Una etiqueta FORM de apertura con formato.

Descripción Devuelve un elemento FORM HTML.

Las siguientes funciones se utilizan para provide file uploading functionality en la página HTML.

Sintaxis

file (cadena $ fieldName, matriz $ optionsarray ())

Parámetros
  • Nombre de un campo, con el formato "Modelname.fieldname"

  • Matriz de atributos HTML.

Devoluciones

Una entrada de archivo generada.

Descripción

Crea un widget de entrada de archivos.

Las siguientes funciones se utilizan para crear hidden element en la página HTML.

Sintaxis

oculto (cadena $ fieldName , matriz $ optionsarray () )

Parámetros
  • Nombre de un campo, con el formato "Modelname.fieldname"

  • Matriz de atributos HTML.

Devoluciones

Una entrada oculta generada

Descripción

Crea un campo de entrada oculto

Las siguientes funciones se utilizan para generar input element en la página HTML.

Sintaxis

Entrada (cadena $ nombreCampo, matriz $ opciones matriz ())

Parámetros
  • Debe ser "Modelname.fieldname"

  • Cada tipo de entrada tiene diferentes opciones

Devoluciones

Widget de formulario completo

Descripción

Genera un elemento de entrada de formulario completo con etiqueta y div contenedor

Las siguientes funciones se utilizan para generar radio button en la página HTML.

Sintaxis

Radio (cadena $ fieldName , matriz $ optionsarray () , matriz $ atributosarray () )

Parámetros
  • Nombre de un campo, como este "Modelname.fieldname"

  • Matriz de opciones de botón de radio.

  • Matriz de atributos HTML y atributos especiales anteriores.

Devoluciones Conjunto de widgets de radio completo
Descripción Crea un conjunto de widgets de radio. Creará una leyenda y un conjunto de campos de forma predeterminada. Use $ options para controlar esto.

Las siguientes funciones se utilizan para generar submit en la página HTML.

Sintaxis Enviar (cadena $ título nulo, matriz $ opciones matriz ())
Parámetros
  • La etiqueta que aparece en el botón O si la cadena contiene: // o la extensión .jpg, .jpe, .jpeg, .gif, .png. Use una imagen si la extensión existe, Y el primer carácter es /, la imagen es relativa a webroot, O si el primer carácter no es /, la imagen es relativa a webroot / img.

  • Matriz de opciones. Las opciones posibles son div, before, after, type, etc.

Devoluciones

Un botón de envío HTML

Descripción Crea un elemento de botón de envío. Este método generará elementos <input /> que se pueden usar para enviar y restablecer formularios usando $ options. Los envíos de imágenes se pueden crear proporcionando una ruta de imagen para $ caption.

Se utilizan las siguientes funciones to generate textarea element en la página HTML.

Sintaxis

Textarea (cadena $ nombreCampo, matriz $ opciones matriz ())

Parámetros
  • Nombre de un campo, con el formato "Modelname.fieldname"

  • Matriz de atributos HTML, opción especial como escape

Devoluciones Un elemento de entrada de texto HTML generado
Descripción Crea un widget de área de texto

Ejemplo

Realice cambios en el config/routes.php archivo como se muestra en el siguiente código.

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

Crear un RegistrationsController.php archivar en

src/Controller/RegistrationsController.php. Copie el siguiente código en el archivo del 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);
      }
   }
?>

Crea un directorio Registrations a src/Template y en ese directorio, cree un View archivo llamado index.php. Copie el siguiente código en ese archivo.

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

Ejecute el ejemplo anterior visitando la siguiente URL:

http: // localhost / cakephp4 / registrarse

Salida

Tras la ejecución, recibirá el siguiente resultado.