Документация

Начало работы

Модели (models)

Шаблоны (views) и маршрутизация (routes)

Формы

SQL запросы

Сессии и безопасность

Плагины

Методы форм

В данном разделе собраны все часто используемые методы объектов класса "Form" с пояснениями.
Методы разбиты на логические группы.

Управление полями формы

  • addField($field_data)- добавление поля в форму, $field_data - массив параметров поля
  • removeField($field)- удаление поля из формы
  • setHtmlParams($field, $html_params) - добавление html параметров к полю формы ($field может быть массивом полей)
  • setCaption($field, $caption) - задание подписи к полю формы
  • setHelpText($field, $text) - задание подписи к полю формы

Добавление и удаление правил

  • setRequired($field) - сделать поле обязательным для заполнения
  • setRequiredFields($fields) - сделать все или несколько полей обязательными для заполнения
  • addRule($field, $rule, $value, [$message]) - добавить правило для проверки поля формы
  • removeRule($field, $rule) - удалить правило проверки поля формы

Принятие и проверка данных

  • getDataFromArray($source) - загрузить в объект формы данные из массива
  • getDataFromPost() - загрузить в объект формы данные из массива $_POST
  • setValue($field, $value) - установить значение поля формы
  • validate([$fields]) - проверить все или выборочные поля формы на соответствие правилам
  • addError($error[, $field]) - добавить ошибку к полю формы
  • hasErrors() - проверка на наличие в форме хотя бы одной ошибки
  • getErrors() - возвращает массив с ошибками формы, ошибки представлены в виде массивов с элементами: 0 - текстовое название поля, 1 - текст ошибки, 2 - название поля в SQL таблице
  • displayErrors() - вывод всех ошибок формы общим списком

Отображение полей формы

  • display([$fields]) - вывести все или выборочные поля формы в нужной последовательности в виде таблицы (слева названия, справа поля)
  • displayVertical([$fields])- вывести все или выборочные поля формы в виде тэгов DIV (название располагается над полем)
  • setDisplayWithErrors() - устанавливает опцию для вывода ошибок формы рядом с полями формы (поля с ошибками получают специальный css класс)
  • displayFieldHtml($field) - выводит одно поле формы (только input без названия)

Получение данных из формы

  • getValue($field) - возвращает значение одного поля формы
  • getAllValues([$fields]) - возвращает значения всех или выборочных полей формы в виде массива
  • getEnumTitle($field) - возвращает значение (не ключ) поля типа enum (если значение задано)
  • composeMessage([$fields]) - составляет сообщение из всех или выборочных заполненных полей формы

Специальные методы

  • useTokenCSRF() - говорит форме использовать CSFR токен при валидации
  • getTokenCSRF() - возвращает CSFR токен для формы после вызова useTokenCSRF()
  • displayTokenCSFR() - выводит скрытое поле с CSRF токеном для валидации
  • filterValuesList($field, $params) - если форма создана из модели, дает возможность фильтрации списка возможных значений для полей типа emun и many_to_many, принимая параметры в виде, описанном в разделе Конструктор запросов.
  • setEnumEmptyValueTitle($field, $title) - для полей типа enum дает возможность сменить текст для пустого значения
  • loadRecord([$fields]) - если форма создана из модели и указан id записи, дает возможность загрузить в форму все или выборочные значения полей записи
  • setDisplaySelects($field) - для полей типа date и date_time, задает возможность вывода в виде тэгов select
  • setDisplayRadio($field) - для полей типа enum дает возможность вывода в виде radio кнопок
  • setDisplayTable($field, $columns) - для полей типа many_to_many и enum дает возможность вывода в виде таблицы с чекбоксами, $columns - количество колонок в таблице, что означает возможность множественного выбора
  • setFieldProperty($field, $property, $value) - задать значение одного из полей формы (свойства описаны в разделе
  • getFieldProperty($field, $property)- вернуть значение свойства одного из полей формы

Примеры

<? 
$fields = array( 
    array("Имя", "char", "name", array("regexp" => "/w/", "max_length" => 50)), 
    array("О себе", "text", "about", array("min_length" => 30)), 
    array("Пароль", "password", "password"), 
    array("Email", "email", "email"), 
    array("Телефон", "phone", "phone", array("format" => "/^d-d{3}-d{3}-d{4}$/")), 
    array("Страница в соц сети", "redirect", "redirect"), 
    array("Возраст", "int", "age"), 
    array("Согласен получать рассылку", "bool", "news") 
);

$form = new Form($fields); 
$form -> setRequiredFields(array("name", "age", "email"));
$form -> addRule("name", "min_length", 3, "Имя должно содержать не менее 3 символов.");
$form -> removeRule("phone", "format");
$form -> useTokenCSRF();

if(!empty($_POST)) 
{ 
    $form -> getDataFromPost() -> validate();

    if(!$form -> hasErrors())
    { 
        $message = $form -> composeMessage();

        if($form -> getValue("news") && $form -> getValue("email")) 
            Email :: send( ... ); 
    } 
} 
?>

<form action="" method="post"> 
    <?
        echo $form -> setDisplayWithErrors() -> displayVertical();
        echo $form -> displayTokenCSFR();
    ?> 
    <p><input type="submit" value="Отправить" /></p>
</form>

Следующий раздел

Конструктор запросов