Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
examples:builder:hasmany_relation [2021/03/27 15:31] pdsci-admin [Step 2: Create a model with list and form for the child table] |
examples:builder:hasmany_relation [2021/04/11 19:06] (current) pdsci-admin [Step 4: Announce the relation to the parent model] |
||
---|---|---|---|
Line 84: | Line 84: | ||
public $implement = [' | public $implement = [' | ||
' | ' | ||
- | ' | + | ' |
| | ||
public $listConfig = ' | public $listConfig = ' | ||
Line 102: | Line 102: | ||
</ | </ | ||
\\ | \\ | ||
- | ===== Step 4: Announce | + | ===== Step 4: Define |
- | To make the parent model able to work with the relation, the type of the relation, the name of the relation and the child model have to be announced | + | To make the parent model able to work with the relation, the type of the relation, the name of the relation and the child model have to be defined |
+ | \\ | ||
+ | {{: | ||
+ | <WRAP clear /> | ||
+ | \\ | ||
The required file is placed in plugins /models/ directory. In case of our example the full path is ' | The required file is placed in plugins /models/ directory. In case of our example the full path is ' | ||
It's only a few lines to add:\\ | It's only a few lines to add:\\ | ||
Line 112: | Line 115: | ||
... | ... | ||
- | | + | |
' | ' | ||
]; | ]; | ||
Line 120: | Line 123: | ||
In line 4 the public variable ' | In line 4 the public variable ' | ||
In line 5 ' | In line 5 ' | ||
+ | By default the key field to look for the records with related IDs will be created by the name of the model trailed by ' | ||
+ | \\ | ||
Remember each definition for a relation is like a table field. A definition can hold several definitions for different relations. Like so:\\ | Remember each definition for a relation is like a table field. A definition can hold several definitions for different relations. Like so:\\ | ||
<sxh php; highlight: [5-9]> | <sxh php; highlight: [5-9]> | ||
Line 188: | Line 193: | ||
label: Reviews | label: Reviews | ||
view: | view: | ||
- | | + | |
toolbarButtons: | toolbarButtons: | ||
manage: | manage: | ||
form: $/ | form: $/ | ||
- | | + | |
... | ... | ||
</ | </ | ||
Line 210: | Line 214: | ||
\\ | \\ | ||
\\ | \\ | ||
- | This is the screenshot for the example above:\\ | + | This is the screenshot for the example above - notice that a definition is already set (see the hasOne example):\\ |
- | /* {{: | + | {{: |
<WRAP clear /> | <WRAP clear /> | ||
\\ | \\ | ||
Line 226: | Line 230: | ||
See this screenshot too:\\ | See this screenshot too:\\ | ||
- | /* {{: | + | {{: |
<WRAP clear /> | <WRAP clear /> | ||
\\ | \\ | ||
Line 235: | Line 239: | ||
So we return to Builder > Models > Book > Forms > field.yaml an add a widget //Partial// displaying and managing the created relation.\\ | So we return to Builder > Models > Book > Forms > field.yaml an add a widget //Partial// displaying and managing the created relation.\\ | ||
The field name we have to refer to is // | The field name we have to refer to is // | ||
- | Notice the ' | + | Notice the ' |
- | /* {{: | + | \\ |
+ | {{: | ||
<WRAP clear /> | <WRAP clear /> | ||
\\ | \\ | ||
Now the form is ready to create, show, edit, delete, link and unlink a record from the child table within/to a record of the parent table. | Now the form is ready to create, show, edit, delete, link and unlink a record from the child table within/to a record of the parent table. | ||
---- | ---- |