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