Vlastní validace formuláře nefunguje
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Radkos
- Člen | 62
Zdravím, mám udělanou vlastní validaci pro zadávání datumu od do, která kontroluje, jestli od není větší než do. Problém ale je, že i když to správně vrací true nebo false, tak v případě špátného zadání se nezobrazí validační zpráva, ani chybu to nevypíše.
$form->addText("dateFrom")
->setRequired("Zadejte prosím datum");
$form->addText("dateTo")
->setRequired("Zadejte prosím datum")
->addRule(UserFormRules::START_BEFORE_END, "Zadejte správně datum", $form["dateFrom"]);
<?php
namespace App\Models;
use Nette;
use Nette\Application\UI\Form;
use Nette\Forms\IControl;
use Nette\Utils\DateTime;
class UserFormRules
{
const START_BEFORE_END = 'App\Models\UserFormRules::validateStartBeforeEnd';
public static function validateStartBeforeEnd(IControl $control, $inputDateFrom)
{
$dateTo = new DateTime($control->getValue());
$dateFrom= new DateTime($inputDateFrom);
return ($dateTo instanceof DateTime && $dateFrom < $dateTo);
}
}