Genera un completo formulario html. Incluye elementos de formulario, bloques para agrupar esos elementos, botones de acción y una caja, que puede utilizar pestañas y manejar la asincronía.
El siguiente ejemplo crea un formulario para ingresar un usuario y una contraseña. A cada elemento se le agregó su etiqueta.
$form = Form::get();
$form->input('user')->setLabel('User');
$form->input('password', ['type' => 'password'])->setLabel('Password');
echo $form->render();
En ocaciones, no queremos utilizar el formulario del framework, o, simplemente, necesitamos sólo los elementos de formulario. Para estos casos, es posible utilizar el fragmento que sólo crea los elementos de formulario y que implementa la interface FormElementsInterface.
$felem = Form::getElements();
echo $felem->input('search', ['icon' => 'fa-solid fa-magnifying-glass']);
Establece los valores de todos los elementos, debe agregarse antes de todo.
public FormElementsInterface::setValues( ?array $values = null ): void;
Un arreglo con todos valores a establecer.
Establece una profundidad en el nombre de los elementos. Generalmente se utiliza cuando un elemento es colocado dentro de un bucle.
public FormElementsInterface::setDeep( string $deep_name = ''): void;
El valor que será agregado al final del nombre del elemento.
Carga un elemento de formulario personalizado.
public FormElementsInterface::load( string $plugin, array $args = [] ): FormElementInterface;
La clave del plugin a cargar.
Un array con los argumentos. El formato de cada argumento debe ser name => value.
Crea un elemento personalizado.
element ( string $content, string $name = ''): FormElementInterface
El html correspondiente al elemento.
Si bien el elemento está personalizado, el nombre puede ser útil ser utilizado en la etiqueta o en el texto de ayuda. De no ser ingresado, se generará uno automáticamente.
Crea un elemento input.
public FormElementsInterface::input( string $name, array $attr = [] ): FormElementInterface;
El nombre del elemento.
Cualquier otro attributo del elemento.
Además de los atributos propios, se le puede pasar el atributo icon. Éste puede ser una cadena con el nombre del ícono, o un arreglo con varios valores, entre los que se destacan:
Crea un elemento botón. Dependiendo de los atributos, éste podrá ser un botón o un enlace o, simplemente, un elemento decorativo.
public FormElementsInterface::button( array $attr = [] ): FormElementInterface;
Los attributos del elemento. Acepta el attributo icon.
Crea un elemento oculto.
public FormElementsInterface::hidden( string $name, mixed $value = null ): HiddenInterface;
El nombre del elemento.
El valor del elemento. Si no se utiliza este parámetro, buscará el valor de la misma manerá que el resto de los elementos. De no encontrar un valor, el elemento no será creado.
Crea una o varias casillas de verificación.
public FormElementsInterface::checkbox( string $name, mixed $options = null, array $attr = [] ): FormElementInterface;
El nombre del elemento.
Si es un arreglo, se creará una casilla por cada elemento del arreglo. De lo contrario, si tiene un valor, será considerado su etiqueta.
Cualquier otro attributo del elemento.
Crea una casilla de verificación customizada, con una apariencia de botón.
public FormElementsInterface::toggle( string $name, array $attr = [] ): FormElementInterface;
El nombre del elemento.
Cualquier otro attributo del elemento.
Crea un input customizado para cargar archivos.
public FormElementsInterface::file( string $name, array $options = [] ): FormElementInterface;
El nombre del elemento.
Las opciones para configurar el javascript.
Crea un botón de envío del formulario.
public FormElementsInterface::enter( string $label = '', array $attr = [] ): FormElementInterface;
La etiqueta que mostrará el botón.
Los attributos del elemento. Acepta el attributo icon.
public FormElementsInterface::radio ( string $name, array $options, array $attr = [] ): FormElementInterface;
El nombre del elemento.
Un arreglo con las opciones del elemento.
Cualquier otro attributo del elemento.
public FormElementsInterface::select ( string $name, array $options, array $attr = [] ): FormElementInterface;
El nombre del elemento.
Un arreglo con las opciones del elemento.
Cualquier otro attributo del elemento.
Un selector múltiple customizado.
public FormElementsInterface::suite ( string $name, array $options, array $attr = [] ): FormElementInterface;
El nombre del elemento.
Un arreglo con las opciones del elemento.
Cualquier otro attributo del elemento.
public FormElementsInterface::textarea ( string $name, array $attr = [] ): FormElementInterface;
El nombre del elemento.
Cualquier otro attributo del elemento.
public FormElementsInterface::editor ( string $name ): FormElementInterface;
El nombre del elemento.
public FormElementsInterface::collection ( string $control, string $name ): FormElementInterface;
La clave con la que el javascript reconocerá la colección.
El nombre del elemento.
Agrupa varios elementos de formulario.
public FormElementsInterface::group ( FormElementInterface ... $elements ): FormElementInterface;
Los elementos a agrupar.
Crea un formulario. Implementa la interfaz FormInterface que a su vez extiende la interfaz FormElementsInterface. Es decir, la clase Form, además de sus métodos, tiene todos los métodos de la clase Formelements.
Retorna un fragmento para la construcción de los botones de acción.
public FormInterface::getActions ( string $snippet = '' ): FormActionsInterface;
La clave del fragmento.
Establece un encabezado a un bloque de elementos de formulario.
public FormInterface::header ( mixed $attr = null, ?bool $toggle = null ): void;
Acepta los mismos atributos que una fila.
Si se establece un valor boleano, el bloque de elementos podrá ser colapsado.
Envuelve en un fieldset todos los grupos que se tienen hasta el momento.
public FormInterface::separate ( ?string $legend = null ): void;
La leyenda que contendrá el fieldset.
Coloca varios elementos en columnas si el ancho de pantalla lo permite.
public FormInterface::columns ( FormElementInterface ...$elements ): void
Los elementos a colocar en columnas.
public FormInterface::addBlock ( string $html ): void;
Agrega un bloque al formulario. Un bloque consta de una o varias filas.
Retorna el último elemento anexado a la pila de elementos de formulario.
public FormInterface::getLastElement ( ): FormElementInterface;
Envuelve con una etiqueta de formulario la cadena html pasada como parámetro. Además, agrega el token csrf.
public FormInterface::renderForm ( string $html, string|int $form_id = '' ): string;
El html a envolver con la etiqueta de formulario.
La id del formulario.
Devuelve el html.
public FormInterface::render ( ): string;