examples:builder:hasone_relation

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
examples:builder:hasone_relation [2021/03/26 23:53]
pdsci-admin [Step 3: Extend the parent controller]
examples:builder:hasone_relation [2021/03/27 07:54] (current)
pdsci-admin [Step 5: Create the config_relation.yaml controller file]
Line 61: Line 61:
 <WRAP clear /> <WRAP clear />
 \\ \\
 +\\
 +Here is the complete code to copy, the highlighted rows are the lines probably to add, if the controller was already created. Please remember //Pds\Library// is the namespace of this exampe that has to be adapted to your needs!
 +\\
 +<sxh php; highlight: [10,18]>
 +<?php namespace Pds\Library\Controllers;
 +
 +use Backend\Classes\Controller;
 +use BackendMenu;
 +
 +class Books extends Controller
 +{
 +    public $implement = ['Backend\Behaviors\ListController',
 +                         'Backend\Behaviors\FormController',
 +                         'Backend\Behaviour\RelationController']; // this line adds the relation behaviour
 +    
 +    public $listConfig = 'config_list.yaml';
 +    public $formConfig = 'config_form.yaml';
 +    
 +    //add configuration of relation for Books
 +    // this file has to be created then manually inside the
 +    // [namespace]\controllers\[controllername] folder
 +    public $relationConfig = 'config_relation.yaml'; 
 +
 +    public function __construct()
 +    {
 +        parent::__construct();
 +        BackendMenu::setContext('Pds.Library', 'library-main-menu-item');
 +    }
 +}
 +</sxh>
 +\\
 +===== Step 3: Extend the parent controller =====
 +As for all relations the controller of the parent table has to be extendend by a few lines to add the relation behaviour. This simlpy is to tell OctoberCMS and the parent table how deal with relations.\\
 +In case this step has been done already for another relation, skip it because this is required only once!\\
 +
 +{{:examples:builder:relations-controller-extend.jpg?direct&960 |}}
 +<WRAP clear />
 \\ \\
 Here is the complete code to copy, the highlighted rows are the lines probably to add, if the controller was already created. Please remember //Pds\Library// is the namespace of this exampe that has to be adapted to your needs! Here is the complete code to copy, the highlighted rows are the lines probably to add, if the controller was already created. Please remember //Pds\Library// is the namespace of this exampe that has to be adapted to your needs!
Line 165: Line 202:
  
 <sxh yaml> <sxh yaml>
 +...
 +
 description: description:
     label: Description     label: Description
Line 173: Line 212:
         form: $/pds/library/models/description/fields.yaml         form: $/pds/library/models/description/fields.yaml
         list: $/pds/library/models/description/columns.yaml         list: $/pds/library/models/description/columns.yaml
 +
 +...
 </sxh> </sxh>