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

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

#1 24 сентября 2015 в 12:44
Добрый день, коллеги!
В документации ко 2 ветке InstantCMS есть вполне подробная глава о создании таблиц в Админке: docs.instantcms.ru/dev/controllers/backend/grids
Реализуя такие таблицы, нашёл и исправил там пару фатальных и пару косметических ошибок – таблицы стали получаться. Ok!

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

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

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

Заранее спасибо!
#2 24 сентября 2015 в 13:04

нашёл и исправил там пару фатальных и пару косметических ошибок – таблицы стали получаться

Aquarius
Если не сложно, то можете добавить пулреквест с исправлениями.

Штатным путём мы считываем в эти grid-таблицы содержимое одной таблицы БД

Aquarius
Почему же?
  1. cmsTemplate::getInstance()->renderGridRowsJSON($grid, $data, $total, $pages);
В массиве данных $data может быть что угодно и даже не обязательно данные из БД. Выбирайте из БД данные хоть из 10-ти таблиц через join* методы модели.
Мы сначала получаем массив данных, а потом передаем их в построитель таблиц, а там уже формируем их вывод как нам нужно.
#3 24 сентября 2015 в 13:27


Если не сложно, то можете добавить пулреквест с исправлениями.

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

За разъяснение спасибо!
Разберусь, реализую и добавлю там в документацию параграф об этом…
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.