Validacni pravidla v databazi
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- libik
- Člen | 100
V databazi mam tabulku s parametry, u kazdeho pole validation_rule, validation_hint a validation_pattern.
Takze chci policko ve formulari validovat podle konkretniho pravidla,
definovaneho v db.
Takze treba validation_rule = „INTEGER“, valdation_hint = „Zadejte cele
cislo“.
Cela metoda:
<?php
public function actionEdit($attribute) {
$this->propertiesRecord = $this->webProperties->findByAttribute($attribute);
if (!$this->propertiesRecord) {
$this->flashMessage("Takový parametr neexistuje! [$attribute]", 'error');
$this->redirect('default');
}
$this["propertiesForm"]->setDefaults($this->propertiesRecord);
$this["propertiesForm"]['value']->addRule(Form::$this->propertiesRecord->validation_rule, $this->propertiesRecord->validation_hint);
}
?>
A to nejde, jde to tedy dynamicky jinak?
Formular definovan takto:
<?php
$form->addText('value', 'Hodnota:');
?>
Editoval libik (18. 9. 2013 18:11)
- David Matějka
- Moderator | 6445
zkus:
constant('Nette\Forms\Form::' . $this->propertiesRecord->validation_rule);
- David Matějka
- Moderator | 6445
budes muset:
{form propertiesForm}
...
{label value/}
{input value}
{$form['value']->getOption('description')}
...
{/form}