Colonnes & champs : les bases
La grille et le formulaire de création/édition se configurent de manière totalement indépendante - ->columns() contrôle l'une, ->fields() contrôle l'autre.
->columns() contrôle la grille
->columns($columns, $reverse = false) restreint et ordonne les champs affichés par la vue LISTE (grille). $columns est une chaîne séparée par des virgules ou un tableau de noms de champs, affichés exactement dans cet ordre. Si elle n'est jamais appelée, la grille affiche toutes les colonnes, dans l'ordre naturel de la table.
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
$columns | string|array | - | Liste de champs séparée par des virgules, ou tableau de noms de champs, dans l'ordre d'affichage |
$reverse | bool | false | Lorsque true, $columns signifie "tous les champs SAUF ceux-ci" au lieu de "uniquement ceux-ci" |
Définir $reverse = true est pratique pour une table large où vous souhaitez seulement masquer une ou deux colonnes gênantes plutôt que de relister tout le reste :
$xcrud->columns('internalNotes', true); // show every column except internalNotes
->fields() contrôle le formulaire
->fields($fieldList, $useTabs = false, $sectionName = '') restreint et ordonne les colonnes affichées par le FORMULAIRE DE CRÉATION/ÉDITION - une préoccupation totalement distincte de ->columns(). Un champ peut apparaître dans la grille mais pas dans le formulaire, ou dans le formulaire mais pas dans la grille ; chaque méthode n'affecte jamais que sa propre surface.
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
$fieldList | string | - | Liste de champs séparée par des virgules, dans l'ordre où le formulaire doit les afficher |
$useTabs | bool | false | Lorsque plusieurs appels à fields() passent chacun un $sectionName, transforme ces sections en un sélecteur d'onglets au lieu de sections empilées avec libellé |
$sectionName | string | '' | Regroupe le $fieldList de cet appel sous un libellé de section/onglet nommé |
Voir Regroupement de champs, onglets & texte enrichi pour le dossier complet consacré aux onglets/sections.
Tri et libellés
->order_by($field, $direction = 'asc') définit le tri initial de la grille - les visiteurs peuvent toujours cliquer sur l'en-tête d'une colonne pour retrier ensuite.
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
$field | string | - | Colonne servant au tri initial |
$direction | string | 'asc' | 'asc' ou 'desc' |
->label($field, $label) définit un nom d'affichage personnalisé pour un champ, utilisé À LA FOIS dans l'en-tête de colonne de la grille et dans le libellé de champ du formulaire - un seul appel couvre les deux surfaces.
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
$field | string | - | Le nom de colonne sous-jacent |
$label | string | - | Texte d'affichage remplaçant le nom de colonne brut |
En pratique
$xcrud = Xcrud::get_instance();
$xcrud->table('customers');
$xcrud->route('customers');
// Grid: only these three columns, customerName first
$xcrud->columns('customerName,city,creditLimit');
$xcrud->order_by('customerName', 'asc');
// Form: a different, larger field set
$xcrud->fields('customerName,contactFirstName,contactLastName,city,creditLimit,phone');
$xcrud->label('creditLimit', 'Credit Limit ($)');
$xcrud->render();