Чек-лист создания формы 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

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