Search the FirstSpirit Knowledge Base
Hallo zusammen,
ich versuche gerade, eine Fremdschlüsselbeziehung zwischen zwei Tabellen anzulegen.
Dazu habe ich Tabelle 1 (Veranstaltung) und Tabelle 2 (Veranstaltungskategorien). Diese sollen nun mit einer 1:n-Beziehung verknüpft werden (1 Kategorie hat n Veranstaltungen, 1 Veranstaltung hat 1 Kategorie).
Dazu habe ich die Beziehung wie folgt angelegt:
Anschließend habe ich eine Tabellenvorlage (ufh.veranstaltung_erfassen_bearbeiten) für die Veranstaltung erstellt, in der mittels FS_LIST vom Typ Database auf die Kategorien und die zuständige Vorlage (ufh.veranstaltungskategorien_bearbeiten) verwiesen wird. Im Formular klappt das auch super:
<CMS_INPUT_TEXT name="ct_title" hFill="yes" singleLine="no" useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="Titel" description="Titel der Veranstaltung"/>
</LANGINFOS>
</CMS_INPUT_TEXT>
<CMS_INPUT_TEXT name="ct_ort" hFill="yes" singleLine="no" useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="Ort" description="Ort der Veranstaltung"/>
</LANGINFOS>
</CMS_INPUT_TEXT>
<CMS_INPUT_TEXT name="ct_referent" hFill="yes" singleLine="no" useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="ReferntIn" description="ReferentIn der Veranstaltung"/>
</LANGINFOS>
</CMS_INPUT_TEXT>
<CMS_INPUT_DATE name="ct_datum" allowEmpty="yes" hFill="yes" preset="created" useLanguages="no">
<LANGINFOS>
<LANGINFO
lang="*"
label="Tag und Uhrzeit"
description="Datum und Uhrzeit"
format="'am' dd.MM.yyyy 'um' HH:mm"/>
</LANGINFOS>
</CMS_INPUT_DATE>
<CMS_INPUT_TEXTAREA name="ct_beschreibung" hFill="yes" rows="7" useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="Beschreibung" description="Kurze Beschreibung der Veranstaltung"/>
</LANGINFOS>
</CMS_INPUT_TEXTAREA>
<FS_LIST name="ct_kategorie" hFill="yes" rows="5">
<DATASOURCE type="database" maxEntries="1" useLanguages="no">
<ACTIONS>
<ACTION name="ADD"/>
<ACTION name="REMOVE"/>
<ACTION name="UP"/>
<ACTION name="DOWN"/>
<ACTION name="GOTO"/>
<ACTION name="EDIT"/>
</ACTIONS>
<COLUMNS>
<COLUMN show="no">#identifier</COLUMN>
</COLUMNS>
<LAYOUT>
<ADD component="toolbar" constraint="top"/>
<ADD component="overview" constraint="center"/>
<ADD component="stackedview" constraint="bottom"/>
</LAYOUT>
<table>ufh.veranstaltungskategorien_bearbeiten</table>
</DATASOURCE>
<LANGINFOS>
<LANGINFO lang="*" label="Kategorie (maximal eine Kategorie pro Veranstaltung)"/>
</LANGINFOS>
</FS_LIST>
Nur kann ich im Bereich Mapping nicht festlegen, dass ct_kategorie die Beziehung enthält, da ich nur Zugriff auf die Standard-Spalten habe:
Folglich kann ich in der HTML-Vorlage auch nicht auf die Kategorie zu einer Veranstaltung zugreifen.
Kann mir da jemand weiterhelfen?
Grüße,
Fabian
Lösung gefunden.
Warum auch immer funktioniert es nicht mit FS_LIST. Bin jetzt auf CMS_INPUT_COMBOBOX umgestiegen, damit funktioniert es:
...
<CMS_INPUT_COMBOBOX name="ct_kategorie2" hFill="yes" singleLine="no">
<CMS_INCLUDE_OPTIONS type="database">
<LABELS>
<LABEL lang="*">#item.Typ</LABEL>
</LABELS>
<TABLE>ufh.veranstaltungskategorien_bearbeiten</TABLE>
</CMS_INCLUDE_OPTIONS>
<LANGINFOS>
<LANGINFO lang="*" label="Kategorieauswahl"/>
</LANGINFOS>
</CMS_INPUT_COMBOBOX>
...
Lösung gefunden.
Warum auch immer funktioniert es nicht mit FS_LIST. Bin jetzt auf CMS_INPUT_COMBOBOX umgestiegen, damit funktioniert es:
...
<CMS_INPUT_COMBOBOX name="ct_kategorie2" hFill="yes" singleLine="no">
<CMS_INCLUDE_OPTIONS type="database">
<LABELS>
<LABEL lang="*">#item.Typ</LABEL>
</LABELS>
<TABLE>ufh.veranstaltungskategorien_bearbeiten</TABLE>
</CMS_INCLUDE_OPTIONS>
<LANGINFOS>
<LANGINFO lang="*" label="Kategorieauswahl"/>
</LANGINFOS>
</CMS_INPUT_COMBOBOX>
...
Bitte die FS_LIST generell nicht mehr verwenden sondern die beiden Ersatzkomponenten FS_INDEX und FS_CATALOG.
Hallo Fabian,
der Grund ist hier einfach, dass die FS_LIST eine mehrwertige Komponente ist, man also mehrere Kategorien wählen kann. Darum kann sie nicht auf eine zu-1-Relation gemappt werden.
Du könntest sie (oder wie Sven schon schrieb besser einen FS_INDEX) aber dazu nutzen, um in einer Kategorie die Veranstaltungen zu pflegen, also die zu-n-Richtung.
Viele Grüße
Michael