---
title: "m:n Verbindung via Frontend updaten"
url: "https://www.typo3.net/d/107372-mn-verbindung-via-frontend-updaten"
source: "typo3.net"
tags: ["Extensions","Extbase","Frage"]
created: "2011-09-19"
last_reply: "2014-05-15"
replies: 6
solved: false
page: 1
pages: 1
lang: "de"
---

# m:n Verbindung via Frontend updaten

Extensions › Extbase · 6 Antworten · gestartet 2011-09-19

## Eröffnungsbeitrag

**Vivid** · 2011-09-19 · [Beitrag #1](https://www.typo3.net/d/107372-mn-verbindung-via-frontend-updaten/1)

Hi,

ich habe in extbase zwei Tabellen (Auto und Reifen) miteinander verknüpft (m:n). Da ich dem Benutzer aber die Möglichkeit bieten möchte, dass er bestehende Elemente im Frontend verknüpfen kann, wollte ich in der Edit-View von "Auto" alle bisher angelegen Reifen anzeigen und alle bisher verknüpften. Dann kann der Benutzer einen bereits angelegten Reifen markieren und unten auf speichern drücken. Es muss dann in die Zwischentabelle ein neuer Eintrag für die beiden UIDs angelegt werden.

Hat jemand eine Idee, wie man dieses Problem lösen kann? In meinen Augen ist das eine riesige hin- und herspringerei, weil man ja z.B. auch "alle" Reifen braucht. Nicht nur die, die bereits verknüpft sind.

Danke und Grüße

## Antworten

### [#2](https://www.typo3.net/d/107372-mn-verbindung-via-frontend-updaten/2) · alisha · 2011-10-12

ich schieb das mal hoch, weil ich die gleiche Frage habe:
Wie kann ich in einem Frontend-Formular ein Feld füllen lassen mit Datensätzen aus einer n:m-Beziehung ?

Bei mir ist es Kurs und Anmeldung:
Im Formular Anmeldung soll es eine Select-Liste mit allen Kursen geben und zudem soll der Kurs bereits vorausgewählt sein, den ich als GET-parameter dem Formularaufruf mitgebe.

Bin für jeden Hinweis dankbar!

### [#3](https://www.typo3.net/d/107372-mn-verbindung-via-frontend-updaten/3) · freshman17 · 2011-10-13

Falls alles richtig im TCA konfiguriert ist, spielt es keine gesonderte Rolle ob es eine n:m oder eine 1:n Beziehung ist, zumindesten für den Entwickler.

Sollte ungefähr so funktionieren:

Im Controller

```php
/**
 * Create new course
 *
 * @param Tx_MyExt_Domain_Model_Course $newCourse
 * @return string
 * @dontvalidate $newCourse
 * @dontverifyrequesthash
 */
public function newAction(Tx_MyExt_Domain_Model_Course $newCourse) {
	$this->view->assign('courses', $this->courseRepository->findAll());
	$this->view->assign('newCourse', $newCourse);
}
```

Im Template

```css
<f:form method="get" action="create" name="newCourse" object="{newCourse}">
<f:form.select property="course" options="{courses}" optionLabelField="title" />
```

Für eine Vorselektion in der Select-Liste bitte das Attribut "value" in der Doku anschauen.

### [#4](https://www.typo3.net/d/107372-mn-verbindung-via-frontend-updaten/4) · alisha · 2011-10-13

Hi,
danke für deine Antwort. Also ich verstehs nicht, warum es nicht funktioniert... Würdest du mal über den Code schauen?

ich habe u.a. im TeilnehmerController:

```php
/**
* kursRepository
* 
* @var Tx_Ahdancecourses_Domain_Repository_KursRepository
*/
protected $kursRepository;

/**
* injectKursRepository
*
* @param Tx_Ahdancecourses_Domain_Repository_KursRepository $kursRepository
* @return void
*/

public function injectKursRepository(Tx_Ahdancecourses_Domain_Repository_KursRepository $kursRepository) {
	$this->kursRepository = $kursRepository;
}

/**

 * action anmelden
 * @param Tx_Ahdancecourses_Domain_Model_Kurs $kurs
 * @param $newTeilnehmer
 * @dontvalidate $newTeilnehmer
 * @dontvalidate $kurs
 * @dontverifyrequesthash
 * @return string
 */
public function anmeldenAction(Tx_Ahdancecourses_Domain_Model_Kurs $kurs, Tx_Ahdancecourses_Domain_Model_Teilnehmer $newTeilnehmer = NULL) {
if ($newTeilnehmer == NULL) { // workaround for fluid bug ##5636
	$newTeilnehmer = t3lib_div::makeInstance('Tx_Ahdancecourses_Domain_Model_Teilnehmer');}

$this->view->assign('kurse',$this->kursRepository->findAll());
$this->view->assign('anmeldenTeilnehmer', $newTeilnehmer);

}
```

Der Link zur Anmeldung bekommt den Kurs übergeben (in der List.html über alle Kurse bekommt jeder Kurs diesen Link)

```php
<f:link.action controller="Teilnehmer" class="btn" action="anmelden" arguments="{kurs : kurs}">
```

und im anmeldeformular:

```php
<f:form.select property="kurs" id="kurs" options="{kurse}"  size="1" optionValueField="uid" optionLabelField="kursnummer" />
```

Danke + Grüße

### [#5](https://www.typo3.net/d/107372-mn-verbindung-via-frontend-updaten/5) · freshman17 · 2011-10-13

Ungetestet, siehe Anhang.

beispiel.zip

### [#6](https://www.typo3.net/d/107372-mn-verbindung-via-frontend-updaten/6) · alisha · 2011-10-13

Hi,
danke für deinen Code, hab meinen entsprechend nachgebessert. Nur lief es dann trotzdem nicht. Ich war echt kurz vorm Verzweifeln, aber nun hat sich herausgestellt, dass es nicht funktionierte, weil die Felder in einem Partial ausgelagert waren. Wenn ich die Felder in das eigentliche Formular hole, dann funktioniert alles ..
Stunden um Stunden Frust und dann sowas...
Eigentlich müsste man wohl beim rendern des partials das auch das Argument mitgeben können, aber das funktioniert nicht, aber das ist mir im Moment auch egal. Hauptsache es läuft jetzt erstmal.

Gruß und Dank

### [#7](https://www.typo3.net/d/107372-mn-verbindung-via-frontend-updaten/7) · Unbekannter Benutzer · 2014-05-15

Unendliche Weiten...

das Typo3-Universum...

Wir schreiben das Jahr Zweitausendundvierzehn...

...und dieses Scheiss-Problem existiert immer noch!

Dank dieses Threads habe ich Stunden der nervenaufreibendsten Fehlersuche verpasst!

Danke! Danke! Danke!

Wann erbarmt sich endlich mal einer und schreibt dick und fett in die Doku, dass man Formulare nicht in Partials auslagern darf?

Uff, jetzt klappt's. Und mir fällt ein Stein vom Herzen.

Beste Grüße
Stefan Padberg

---

Quelle: „m:n Verbindung via Frontend updaten“, typo3.net, https://www.typo3.net/d/107372-mn-verbindung-via-frontend-updaten
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
