--- title: "Reglas inmutables y cheat-sheet de tipos" tags: [reference, rules, cheat] load_priority: 90 load_when: [cheatsheet] summary: "Reglas no negociables (cms_, num, _num, upload arrays, c-if/{% if %}), tipos de builder field, atributos Acai, filtros Twig, formato de datos para insert/update, errores comunes." --- # Reglas inmutables y cheat-sheet Resumen ejecutable de reglas críticas, tipos de campo, filtros y formatos de datos. Si tienes duda rápida, consulta esto antes de los docs largos. ## Reglas inmutables | Regla | Correcto | Incorrecto | |-------|----------|------------| | Nombres de tabla en tools/Twig/CmsApi | `'productos'` | `'cms_productos'` | | Nombres en `queryDB` | `cms_productos` | `productos` | | Primary key | `record.num` | `record.id` | | Foreign keys | `categoria_num` | `categoria_id` | | Upload fields | `record.imagen[0].urlPath` | `record.imagen` | | Optimizar imagen | `imagen[0].urlPath \| imagec(800)` | `imagen.url` | | Filtros Twig | `{{ 'tabla' \| get() }}` | `{{ get('tabla') }}` | | Campo enlace | `{{ producto.enlace }}` (ya tiene barras) | `"/{{ producto.enlace }}/"` | | Builder var name | `data-field-label` → minúsculas, sin espacios | Mantener casing original | | Checkbox | `1` o `0` (número) | `true` / `false` | | Formato fecha | `YYYY-MM-DD HH:mm:ss` | Cualquier otro | | `c-if` igualdad | `c-if="x = 'valor'"` (un `=`) | `c-if="x == 'valor'"` | | Twig `{% if %}` | `{% if x == 'valor' %}` (doble `==`) | `{% if x = 'valor' %}` | | Concatenación Twig | `'value=' ~ variable` | `'value=' + variable` | ## Tipos de builder field (`data-field-type`) | Tipo | Elemento | Devuelve | |------|----------|----------| | `textfield` | `
` | String | | `headfield` | `