Resumen de tipos de campo
Todos los controles ->change_type() que xCRUD Nova Pro puede renderizar para un campo de formulario, desde texto plano hasta una captura de cámara en vivo.
->change_type()
->change_type($field, $type, $length = '', $extra = []) anula cómo se renderiza un campo en el formulario de creación/edición (y, para tipos como select, cómo se muestra su valor también en la edición en línea). Sin esta llamada, el tipo de un campo se infiere del tipo de columna de la base de datos.
| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
$field | string | - | La columna a cambiar |
$type | string | - | Uno de los tipos siguientes |
$length | string | '' | Solo tiene sentido para price: decimales (por defecto 2). Ignorado por el resto de tipos |
$extra | array | [] | Array de opciones para select/multiselect/radio/checkboxes/switch, o ['prefix' => ..., 'suffix' => ...] para price |
La lista de tipos
| Tipo | Descripción |
|---|---|
text | Entrada de texto simple de una línea |
textarea | Entrada de texto plano multilínea |
editor | Editor WYSIWYG de texto enriquecido Quill, almacena HTML |
select | Desplegable de un solo valor, construido a partir de las opciones de $extra |
multiselect | Selección múltiple, almacenada como un valor unido por comas |
radio | Grupo de botones de opción |
checkboxes | Grupo de casillas de verificación, valor unido por comas como multiselect |
switch | Interruptor explícito - siempre requiere exactamente 2 opciones |
password | Entrada de texto enmascarada (enmascarado solo visual, no un hash - se almacena como texto plano igual que cualquier otro campo de texto) |
hidden | Entrada oculta, excluida de la edición en línea, se sigue enviando con el formulario |
time | Selector de hora (las columnas TIME de MySQL lo obtienen automáticamente) |
year | Entrada numérica restringida al rango YEAR de MySQL (1901-2155) |
price | Entrada decimal con un prefijo/sufijo de moneda opcional |
file | Campo de subida de archivo |
image | Subida de imagen con opciones de redimensionado/recorte/marca de agua |
video | Campo de subida de vídeo |
camera | Captura de cámara en vivo (foto), almacenada igual que image |
Consulta Subida de archivos e imágenes y Medios, cámara y subida de vídeo para el conjunto completo de opciones de file/image/video/camera.
Ejemplo: un campo select
$extra acepta una lista simple (valor = etiqueta), un mapa valor=>etiqueta, o una lista de pares [valor, etiqueta]:
$xcrud->change_type('status', 'select', '', [
'a' => 'Active',
'i' => 'Inactive',
]);
Ejemplo: un campo price
$length establece los decimales, $extra establece un prefijo/sufijo de moneda:
$xcrud->change_type('unitPrice', 'price', '2', ['prefix' => '$']);