Чек-лист создания формы Master-Detail в Backend OctoberCMS

October CMS поддерживает декларативный способ задания формы Master-Detail.

octobercms-relation-controller-example.png

  1. В Master модели должна быть связь belongs или has.
  2. В Detail модели надо указать fillable атрибуты для заполнения.
  3. В Master контроллере массиву $implement добавить поведение Backend.Behaviors.RelationController.
  4. В Master контроллере добавить конфиг $relationConfig, описывающий поведение отношения.
    ...
    public $relationConfig = 'config_relation.yaml';

    Пример конфига:

    publications:
        label: Публикации
        view:
            list: $/bree7e/cris/models/publication/columns.yaml
            toolbarButtons: create|add|remove
        manage:        
            form: $/bree7e/cris/models/publication/fields_simple.yaml
            showSearch: true
            recordsPerPage: 10
  5. Создать columns.yaml для Detail модели по аналогии с fields.yaml.
  6. Создать partial отрисвощик формы "Mater/Detail".
    Например _publications.htm:
    <?= $this->relationRender('publications') ?>
  7. Создать поле для отрисовщика в конфиге fields.yaml Master модели с типов partial и именем из шага (6) без символа подчёркивания.
    publications:
        span: full
        type: partial
        tab: Публикации

Видео от Watch-Learn

Похожие записи

Как в OctoberCMS сделать простейшую переадресацию с одной страницы на другую?

Создаём страницу (Page), задаем URL и в секции код добавляем обработчик на хук жизненного цикла страницы. В данном случае это onStart, которая выполняется перед началом загрузки страницы.

function onStart()
{
    return Redirect::to('http://tyapk.ru');
}

OctoberCMS. Ошибка RelationController: "Не удалось найти шаблон (partial) ... traits\ViewMaker.php"

В контроллере поведения RelationController при нажатии на кнопке "Cоздание" вылетает ошибка с подобным содержаним

"Не удалось найти шаблон (partial) с именем _comments.htm." on line 91
of ...\modules\system\traits\ViewMaker.php