Custom validators FormIt
Нашел в документации FotmIt такой снипет
Если не сложно пришлите пожалуйста небольшой пример. Заранее благодарю
$value = (float)$value;
$success = $value > 1000;
if (!$success) {
// Note how we can add an error to the field here.
$validator->addError($key,'Not big enough!');
}
return $success;
Не особо понял где указывать свое поле и как должен выглядеть сама форма и валидатор. Если не сложно пришлите пожалуйста небольшой пример. Заранее благодарю
Комментарии: 8
Помогите пользователям понять вас.
Нашел в документации такой снипетВ какой документации? Документация чего?
Извините забыл уточнить. FormIt
А что там непонятного?
$value — это значение, которое нужно проверить
$key — имя поля формы, в котором это значение указывается.
Если проверка не пройдена нужно выполнить метод
Если проверка пройдена, то нужно просто вернуть true.
А небольшой пример вы сами уже написали в вопросе.
$value — это значение, которое нужно проверить
$key — имя поля формы, в котором это значение указывается.
Если проверка не пройдена нужно выполнить метод
$validator->addError($key,'Not big enough!')
где $key всё тот же ключ, а 'Not big enough!' сообщение для пользователя об сути ошибки.Если проверка пройдена, то нужно просто вернуть true.
А небольшой пример вы сами уже написали в вопросе.
не особо получается подскажите как тут взять проверку TITLE и правильно ли я указываю
&validate=`cost:isBigEnough`
&customValidators=`isBigEnough`
?
&validate=`cost:isBigEnough`
&customValidators=`isBigEnough`
?
[[!FormIt?
&redirectTo=`27`
&placeholderPrefix=``
&validate=`cost:isBigEnough`
&customValidators=`isBigEnough`
]]
<form class="bs-example form-horizontal" action="[[~[[*id]]]]" method="post">
<input type="text" value="[[!+title]]" class="form-control"
id="title" name="title">
<input type="text" value="[[!+telegram]]" class="form-control"
id="telegram" name="telegram">
<button type="submit" class="btn btn-primary">Сохранить</button>
</form>
Если нужно убедиться в том, что $cost больше 1000, то данная запись верна.
&validate=`cost:isBigEnough`
&customValidators=`isBigEnough`
А если надо сделать проверку двух полей как изменить?
$value = (float)$value;
$success = $value > 1000;
if (!$success) {
// Note how we can add an error to the field here.
$validator->addError($key,'Not big enough!');
}
return $success;
Или на каждое поле снипет писать?
Никак не надо менять валидатор, впрочем как и писать одинаковые валидаторы на каждое поле. Валидатор получает те поля, для которых он назначен в параметрах вызова сниппета. Если нужно кроме cost, проверить ещё и title, надо написать в вызове сниппета так
&validate=`cost:isBigEnough,title:isBigEnough`
&customValidators=`isBigEnough`
подскажите пожалуйста еще
как получить поле из FormIt в файл customValidators
чтобы было типо того, hook тут не работает
как получить поле из FormIt в файл customValidators
чтобы было типо того, hook тут не работает
$key = $hook->getValue('key');
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.