Использование данных из моделей
Загрузка записи в форму
При создании формы из модели можно сразу загрузить в форму значения из базы данных для их дальнейшего изменения. Данная возможность применяется например при редактировании данных в личных кабинетах, пользователей на сайте.
class Clients extends Model
{
protected $name = 'Клиенты';
protected $model_elements = [
['Имя', 'char', 'name', ['required' => true]],
['E-mail', 'email', 'email', ['required' => true, 'unique' => true]],
['Пароль', 'password', 'password', ['required' => true]],
['Город', 'enum', 'city', ['foreign_key' => 'Cities', 'empty_value' => true]]
];
}
$client = $mv -> clients -> find(93);
$form = new Form('Clients', $client -> id);
//Загружаем данные в форму
$form -> loadRecord();
//Можно загружать только выборочные поля
$form -> loadRecord(['name', 'city']);
echo $form -> display();
Фильтрация внешнего ключа
В форме построенной на одной модели могут использоваться данные из другой модели в полях типа enum и many_to_many. Возможны ситуации когда не все варианты внешних ключей нужно показывать в форме и их нужно отфильтровать или упорядочить. Параметры фильтрации описаны в разделе Конструктор запросов.
Пример формы регистрации пользователя с выбором города.
//Класс модели для поля 'city' у клиента
class Cities extends Model
{
protected $name = 'Города';
protected $model_elements = [
['Активировать','bool', 'active', ['on_create' => true]],
['Название', 'char', 'name', ['required' => true]],
['Страна', 'enum', 'country', ['foreign_key' => 'Countries']]
];
}
//В файле шаблона показываем в форме отфильтрованные города
$form = new Form('Clients');
$form -> filterValuesList('city', ['active' => 1, 'order->asc' => 'name']);
echo $form -> display();
Предыдущий раздел
Работа с данными формы