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

Тип данных для хранения товаров в модели заказов

Ответов: 3
Никита
10.11.2019 22:21

Здравствуйте, начал делать уже второй проект на этом фреймворке, при создании интернет магазина возникла проблема, есть товары, есть вариации (модификации) товаров, ну и соответственно нужно где то хранить этот заказ, но не могу найти подходящего типа данных, так как нужно хранить заказанные продукты в модели заказов, я хотел использовать тип данных many_to_many но он не совсем подходит так как цены на товары могут меняться а хранить заказ пользователя нужно с той ценой с которой он её заказал, да и нужно как то вывести общую стоимость всех заказанных позиций, подскажите можно ли это как-то реализовать тем функционалом cmf что есть или только "костылём" ?

Прочтений: 1030
Ответов: 3
Maxim
11.11.2019 11:47

Никита, добрый день, храните данные заказа в сжатом виде в текстовом поле.

1. Создайте поле типа text и поле в базе типа longtext
2. При создании заказа сожмите массив данных например при помощи функции json_encode()
3. Полученный текст сохраните в поле
4. Если хотите отображать содержимое заказа в админке, то для поля задайте функцию, которая будет разжимать json и отображать его в виде таблицы и в этом случае сделайте поле нередактируемым из админки, а то при сохранении заказа данные затрутся.

array("Товары", "text", "cart", array("display_method" => "displayCartInAdmin")),


protected $model_display_params = array("not_editable_fields" => array("cart"));


public function displayCartInAdmin($cart_archive)
{
    $html = "<table class=\"order\">\n";
    $html .= "<tr>\n";
    $html .= "<th>Наименование товара</th>\n";
    $html .= "<th>Цена, руб.</th>\n";
    $html .= "<th>Кол-во</th>\n";
    $html .= "<th>Стоимость, руб.</th>\n";
    $html .= "</tr>\n";

    foreach(json_decode($cart_archive, true) as $product)
    {
          ...
    }

    return $html."</table>\n";
}
Никита
11.11.2019 19:31

Спасибо, примерно так и хотел сделать, но думал может есть какие то более лёгкие пути

Maxim
12.11.2019 09:49

Проще наверное не получится, но можно например еще сделать отдельную модель и туда складывать продукты заказа:

id, id заказа, id или название продукта, цена, количество

Потом по такой модели значительно проще будет строить аналитику.

Ответить на вопрос
Ответить
MV tracker

© 2014-2025, MV framework team

English MV tracker project Github

Поделиться