i_cms_2 - Таблицы в Админке

Как реализовать связь с другими таблицами?

 
Посетитель
small user social cms
Сообщений: 29
Добрый день, коллеги!
В документации ко 2 ветке InstantCMS есть вполне подробная глава о создании таблиц в Админке: http://docs.instantcms.ru/dev/controllers/backend/grids
Реализуя такие таблицы, нашёл и исправил там пару фатальных и пару косметических ошибок – таблицы стали получаться. Ok!

Но возникла новая проблема. Штатным путём мы считываем в эти grid-таблицы содержимое одной таблицы БД, что не всегда достаточно, т..к. может, например, потребоваться название сущности, а у нас в основной таблице – лишь её id.

Вопрос: есть ли штатные средства для связи с другими таблицами в данном контексте?

Пояснение: нетрудно обратиться к модели другого компонента и по id узнать любую информацию об этой сущности. Но функции, описывающие таблицы, обращающиеся к ним, имеют довольно строгую структуру – есть ли предусмотренный способ вмешаться в эту структуру с целью получить данные из другой таблицы БД?

Заранее спасибо!
Редактировалось: 1 раз (Последний: 24 сентября 2015 в 12:46)
Сергей-Водолей
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4379
Aquarius:
нашёл и исправил там пару фатальных и пару косметических ошибок – таблицы стали получаться
Если не сложно, то можете добавить пулреквест с исправлениями.
Aquarius:
Штатным путём мы считываем в эти grid-таблицы содержимое одной таблицы БД
Почему же?
Код PHP:
  1. cmsTemplate::getInstance()->renderGridRowsJSON($grid, $data, $total, $pages);
В массиве данных $data может быть что угодно и даже не обязательно данные из БД. Выбирайте из БД данные хоть из 10-ти таблиц через join* методы модели.
Мы сначала получаем массив данных, а потом передаем их в построитель таблиц, а там уже формируем их вывод как нам нужно.
Редактировалось: 1 раз (Последний: 24 сентября 2015 в 13:05)
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Посетитель
small user social cms
Сообщений: 29
Fuze:

Если не сложно, то можете добавить пулреквест с исправлениями.
Fuze, вы неправильно поняли – ошибки были в описании «как сделать?», из-за чего таблицы не строились.
Например, вместо обращения к шаблону через ядро, было написано "this->", что, понятное дело, не способствовало выводу таблицы в нужном месте smile

За разъяснение спасибо!
Разберусь, реализую и добавлю там в документацию параграф об этом...
Сергей-Водолей
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.