Jet\Form_Definition_Interface

Rozhraní, které musí třída implementovat, pokud má být automaticky mapována na formuláře.

Přehled metod

Metoda Význam
public getFormFieldsDefinition(
) : Form_Definition_Field[]
Vrátí definice formulářových polí dané třídy.
public createForm(
string $form_name,
array $only_fields=[],
array $exclude_fields=[]
) : Form
Dle definice vytvoří formulář.

Parametry:
  • $form_name
    Název formuláře.
  • $only_fields
    Seznam polí z definice ze kterých se má formulář skládat. Ostatní pole budou vyloučena. Je možné používat znak zástupný znak '*' - viz dále.
  • $exclude_fields
    Seznam polí z definice které ve formuláři nesmí být. Je možné používat znak zástupný znak '*' - viz dále.


Fungování filtrů
Oba filtry $only_fields i $exclude_fields mají možnost použít znak *. Jak to funguje: V předchozí kapitole jsme si ukázali příklad s hypotetickým produktem v e-shopu. A dejme tomu, že teď potřebujeme formulář pouze pro editaci popisků zboží a ničeho jiného. Ovšem pro editaci popisků ve všech lokalizacích. Uděláme to takto: $edit_form $product->createForm
       
form_name'edit_form',  
       
only_fields: ['/localized/*/description']
);
Nebo dejme tomu, že potřebujeme formulář, kde budou všechny základní údaje a také všechny údaje lokalizované, ale pouze pro určitou lokalizaci. To lze pak provést takto: $edit_form $product->createForm
       
form_name'edit_form',  
       
only_fields: [
               
'*',
               
'/localized/'.$some_locale.'/*'
       
]
);
A pochopitelné není problém vytvořit formulář s přesným seznamem polí. Například když potřebujeme editovat pouze interní kódy a EANy: $edit_form $product->createForm
       
form_name'edit_form',  
       
only_fields: [
               
'internal_code',
               
'EAN',
       ]
);
Předchozí kapitola
Mapování tříd na formuláře
Další kapitola
Jet\Form_Definition_Trait