MV framework logo
  • Архитектура
  • Философия
  • Админ панель
  • Поддержка
  • Обратная связь
Документация
Скачать .zip версия 3.2.0 от 25.12.2024
  • Архитектура
  • Философия
  • Админ панель
  • Поддержка
  • Обратная связь
Начало работы
  • Установка и запуск
  • Структура папок
  • Запуск простого сайта
  • Предустановленные модели
  • SQLite начало работы
  • Системные настройки
  • Миграции
  • Отладка
Модели
  • Общие принципы моделей
  • Типы данных
  • Настройка модели
  • Простые модели
  • Внешние ключи
  • Деревья
  • Многие ко многим
  • Группа
  • Управление записями
  • Управление простыми моделями
  • Дополнительные возможности
Шаблоны и маршрутизация
  • Общие принципы шаблонов
  • Объект класса Router
  • Объект MV
  • Создание нового шаблона
  • Вывод данных в шаблоне
  • Объект класса Record
  • Файлы и изображения
  • Дата и время
  • Редиректы и Http
  • Отправка email
  • Специальные методы
Формы
  • Создание форм
  • Настройка полей формы
  • Валидация полей формы
  • Безопасность форм
  • Работа с данными формы
  • Использование данных из моделей
  • Методы форм
SQL запросы
  • Конструктор запросов
  • Прямые запросы
  • Постраничная разбивка
  • Сортировка
  • Фильтрация
Дополнительно
  • AJAX
  • Плагины
  • Кэширование
  • Безопасность
  • Дополнения к административной панели
Документация
Начало работы
  • Установка и запуск
  • Структура папок
  • Запуск простого сайта
  • Предустановленные модели
  • SQLite начало работы
  • Системные настройки
  • Миграции
  • Отладка
Модели
  • Общие принципы моделей
  • Типы данных
  • Настройка модели
  • Простые модели
  • Внешние ключи
  • Деревья
  • Многие ко многим
  • Группа
  • Управление записями
  • Управление простыми моделями
  • Дополнительные возможности
Шаблоны и маршрутизация
  • Общие принципы шаблонов
  • Объект класса Router
  • Объект MV
  • Создание нового шаблона
  • Вывод данных в шаблоне
  • Объект класса Record
  • Файлы и изображения
  • Дата и время
  • Редиректы и Http
  • Отправка email
  • Специальные методы
Формы
  • Создание форм
  • Настройка полей формы
  • Валидация полей формы
  • Безопасность форм
  • Работа с данными формы
  • Использование данных из моделей
  • Методы форм
SQL запросы
  • Конструктор запросов
  • Прямые запросы
  • Постраничная разбивка
  • Сортировка
  • Фильтрация
Дополнительно
  • AJAX
  • Плагины
  • Кэширование
  • Безопасность
  • Дополнения к административной панели
MV tracker

Вывод данных в шаблоне

Шаблоны создаются для отображения данных из моделей. Сами модели доступны как объекты в главном объекте $mv и могут быть также инстанциированны отдельно. Для того чтобы вывести данные модели из базы данных можно пойти следующими путями.

Использование объекта Record

Данный класс предназначен для работы с извлеченными из базы данными. Создается объект обычно в результате вызова методов по поиску нужной записи, которая затем возвращается в объекте Record.

<?
$record = $mv -> pages -> find(['url' => 'about', 'active' => 1]);
?>
<div class="main">
    <h1><? echo $record -> name; ?></h1>
    <div><? echo $record -> title; ?></div>
    <div><? echo $record -> getEnumTitle('parent'); ?></div>
    <div class="text"><? echo $record -> content; ?></div>
</div>
Дополнительную информацию можно найти в разделе Объект класса Record.

Методы объекта модели

  • resizeImage($image, $width, $height) - пропорциональное уменьшение изображения, возвращает тэг img
  • cropImage($image, $width, $height) - уменьшение и обрезка изображения, возвращает тэг img (подробнее в разделе Файлы и изображения)
  • extractImages($value) - извлечение изображений из поля типа multi_images, которые хранятся в базе данных в формате JSON
  • getFirstImage($value) - извлечение первого изображения из массива изображения для типа multi_images
  • getEnumValues($field) - возвращает массив (ключ - значение) значений поля типа enum
  • getEnumTitle($field, $key) - возвращает значение (текст) по ключу поля типа enum

Предположим есть модель Новости. Создадим метод для отображения списка новостей.

class News extends Model
{
    protected $name = 'Новости';
    
    protected $model_elements = [
        ['Активировать', 'bool', 'active', ['on_create' => true]],
        ['Заголовок', 'char', 'name', ['required' => true]],
        ['Дата', 'date', 'date'],
        ['Содержание', 'text', 'content']
    ];
}

Необходимо вывести список новостей с заголовком и ссылкой на полный текст новости. Добавляем в модель News новый метод для вывода html.

<?
public function display()
{
    //Извлекаем активные записи из базы данных
    $rows = $this -> select(['active' => 1, 'order->desc' => 'date']);
   
    //Переменная для сборки html кода
    $html = '';
   
    foreach($rows as $row)
    {
        //Ссылка на новость
        $url = $this -> root_path.'news/'.$row['id'];
       
        //Дата и заголовок новости, обернутый в ссылку
        $html .= '<div>';
        $html .= '<div class="date">'.I18n::formatDate($row['date']).'</div>';
        $html .= '<a href="'.$url.'">'.$row['name'].'</a>';
        $html .= '</div>';
    }
    
    return $html;
}
Для вывода длинных списков вам дополнительно понадобится постраничная разбивка.

Вывод данных из простых моделей

Если модель относится к типу Простые модели, то данные извлекаются иным образом, т.к. таблица простой модели содержит всего 2 колонки: ключ и значение. Дополнительная информация содержится в разделе Управление простыми моделями.

class Options extends ModelSimple
{
   protected $name = 'Параметры';
   
   protected $model_elements = [
       ['Email для писем с сайта', 'email', 'email', ['required' => true]],
       ['Телефон', 'char', 'phone'],
       ['Слоган', 'text', 'slogan']
   ];
}

В шаблоне можно извлекать значения по ключам из объекта модели.

//Вывод данных в html шаблон

echo $mv -> options -> phone; 
echo $mv -> options -> slogan;

Предыдущий раздел

Создание нового шаблона

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

Объект класса Record
MV workshop banner
MV tracker

© 2014-2025, MV framework team

English MV tracker project Github

Поделиться