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

Отображение списка в форме "многие ко многим"

Ответов: 7
Akelot
20.11.2024 18:05

Здравствуйте. Пытаюсь понять что упускаю. Есть поле "many_to_many" с включенным параметром long_list.
При выводе формы в шаблоне она появляется обычным select без записей, что логично при условии, что таблица содержит более 35 тыс. записей. Другие поля с объемом примерно в 1,5тыс. записей выводятся в селект.
Вопрос в том, как сделать по аналогии с админкой, автопоиск записи?

Прочтений: 803
Ответов: 7
Admin
21.11.2024 00:21

Добрый день, вам нужно добавить JS autocomplete plugin, например вот этот https://github.com/devbridge/jQuery-Autocomplete

Отправляете ajax запрос, извлекаете данные по названию, отдаете назад json с названиями и id, и при выборе в списке, подставляете id в скрытый input вашего поля.

//В ajax файле выбирайте записи с помощью like

$rows = $mv -> model -> select(['name->like' => 'текст', 'limit->' => 10]);
Akelot
21.11.2024 02:48

Все понятно, спасибо.

Akelot
22.11.2024 20:47

Еще такой вопрос. Делаю фильтрацию, а при фильтре многие ко многим - это всегда фильтр по id. Вопрос в том, может ли фильтр принимать массив значений id, после их выборки name->like? И если да, то как добавить их в параметры фильтра. Пробовал ради теста задать, но дебаг выдает null.
Или то как я хочу штатном фильтре в принципе не возможно?

$mv -> notices -> filter -> setValue('categories', [20,111] );
Debug :: pre( $mv -> notices -> filter -> getValue('categories'));
Admin
23.11.2024 00:19

Фильтр многие ко многим может принимать список значений при отображении списком из чекбоксов, можно опробовать эмитировать этот функционал

Тут есть метод setDisplayCheckboxTable($field, $columns)
https://mv-framework.ru/filtratciia

//Попробуйте так
$mv -> notices -> filter -> setDisplayCheckboxTable('categories', 1);

//И далее передать список значений в строке через запятую
$mv -> notices -> filter -> setValue('categories', '125,44,47');
Akelot
23.11.2024 01:03

Спасибо, сработало, но только после отключения long_list, видимо шалости ядра при выборки из таблицы с большим набором данных, с которых и начался данный сабж.

Akelot
23.11.2024 01:49

А можно как-то в шаблоне включать или отключать? Я пробовал принудительно назначить, дебаг говорит, что свойство применяется, но форма при формировании не учитывает данное изменение, можно ли передать как-то измененное свойство в форму?

$mv -> notices ->setFieldProperty('categories', 'long_list', false);
Debug :: pre($mv -> notices ->getFieldProperty('categories', 'long_list'));
Akelot
23.11.2024 15:23

Получилось, я прописал setFieldProperty после runFilter, а надо было до. Теперь код работает. Но сама ситуация все равно выглядит как баг, ладно не формируется список значений для селекта или чекбоксов, но значения все равно должен принимать.

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

© 2014-2025, MV framework team

English MV tracker project Github

Поделиться