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

Группа

Если необходимо связать записи между собой внутри одной таблицы, используется тип данных Группа group. Например, у товаров должны быть сопутствующие товары которые задаются для каждого товара индивидуально, а их количество может быть различным у каждого товара.

class Products extends Model
{
    protected $name = 'Товары каталога';
    
    protected $model_elements = [
        ['Активен', 'bool', 'active', ['on_create' => true]],
        ['Название', 'char', 'name', ['required' => true]],
        ['Цена', 'int', 'price', ['required' => true]],
        ['Позиция', 'order', 'order'],
        ['Раздел каталога', 'enum', 'parent', [
                'foreign_key' => 'Catalogs', 
                'is_parent' => true
            ]
        ],
        ['Изображения', 'multi_images', 'images'],
        ['Описание', 'text', 'desc', ['rich_text' => true]],
        ['Рекомендуемые товары', 'group', 'additional']
    ];
}

При извлечении данных из поля 'additional' их удобно подставлять в оператор 'field->in' или исключающий оператор 'field->not-in', описанный в разделе Конструктор запросов.

//Нашли нужный товар
$product = $mv -> Products -> find(35);

//Извлекаем сопутствующие товары если они есть
if($product -> additional)
{
    $rows = $mv -> Products -> select([
        'active' => 1, 
        'order->asc' => 'order', 
        'id->in' => $product -> additional
    ]);
    
    foreach($rows as $row)
    {
        ...
    }
}
Альтернативным способом группировки товаров является добавление поля типа enum, когда каждому товару выбирается из выпадающего списка название его группы.
class Products extends Model
{
    protected $name = 'Товары каталога';
    
    protected $model_elements = [
        
        ...
        
        ['Рекомендуемые товары', 'enum', 'additional', [
                'values_list' => [
                    'hits' => 'Хиты',
                    'sale' => 'Распродажа'
                ]
            ]
        ]
    ];
}

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

Многие ко многим

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

Управление записями
MV workshop banner
MV tracker

© 2014-2026, MV framework team

English MV tracker project Github

Поделиться