---
title: "Child wird immer doppelt angelegt?!"
url: "https://www.typo3.net/d/126446-child-wird-immer-doppelt-angelegt"
source: "typo3.net"
tags: ["Extensions","Extbase","Fluid","Frage","TYPO3 8"]
created: "2017-11-28"
last_reply: "2017-12-01"
replies: 2
solved: false
page: 1
pages: 1
lang: "de"
---

# Child wird immer doppelt angelegt?!

Extensions › Extbase · 2 Antworten · gestartet 2017-11-28

## Eröffnungsbeitrag

**mbuchegger** · 2017-11-28 · [Beitrag #1](https://www.typo3.net/d/126446-child-wird-immer-doppelt-angelegt/1)

Hi Leute.

Ich stehe gerade vor einem Rätsel.
Ich will mir ein Child über FE erstellen - es geht um Gewinnspiele.

Gewinnspiel->Teilnahme
Das sind die Controller / Tabellen die es dazu gibt.

Ich rufe also im Controller Teilnahme newAction auf und übergebe als argument Gewinnspiel.

```php
/**
     * Die IP Adresse auslesen
     *
     * @return IP-Adresse
     */
    public  function getIPAddress() {

      if(!empty($_SERVER['TYPO3_DB'])) {
        $ip=$_SERVER['HTTP_CLIENT_IP'];            // Check ip from share internet
      } elseif(!empty($_SERVER[HTTP_X_FORWARDED_FOR])) {
            $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];      //to check ip is pass from proxy
        } else {
            $ip=$_SERVER['REMOTE_ADDR'];
        }
      
        return $ip;
    }
    
    /**
     * Den aktuell angemeldeten User auslesen
     *
     * @return \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserRepository
     */
    public function getCurrentUser() {
        if ($this->currentUser == NULL && $GLOBALS['TSFE']->fe_user->user['uid'] > 0) {
            $this->currentUser = $GLOBALS['TSFE']->fe_user->user;
        } else {
            $this->currenUser = null;
        }

        return $this->currentUser;  
    }

    /**
     * action new
     *
     * @return void
     */
    public function newAction(
        \Musicalplanet\MpGewinnspiele\Domain\Model\Gewinnspiel $gewinnspiel,
        \Musicalplanet\MpGewinnspiele\Domain\Model\Teilnahme $newTeilnahme = NULL)
    {
        $this->view->assign('gewinnspiel', $gewinnspiel);
        $this->view->assign('newTeilnahme', $newTeilnahme);
        $this->view->assign('user', $this->getCurrentUser());
        $this->view->assign('ip', $this->getIPAddress());
    }
```

Wo folgendes Formular liegt:

```html
<f:form class="form-inline" action="create" enctype="multipart/form-data" name="newTeilnahme" object="{newTeilnahme}" arguments="{gewinnspiel:gewinnspiel}">
                <f:form.hidden property="pid" value="{gewinnspiel.pid}" />
                <f:form.hidden property="benutzer" value="{user.uid}" />
                <f:form.hidden property="ip" value="{ip}" />
                
                <div class="form-group">
                    <label for="name">Name</label>
                    <f:form.textfield property="name" value="{user.firstName} {user.lastName}"  required="1" />
                </div>
                <div class="form-group">
                    <label for="email">E-Mail</label>
                    <f:form.textfield property="email" value="{user.email}" required="1" />
                </div>
                <div class="form-group">
                    <label for="telefon">Telefon</label>
                    <f:form.textfield property="telefon" value="{user.telephone}" />
                </div>
                <div class="form-group">
                    <label for="bemerkung">Bemerkung</label>
                    <f:form.textfield property="bemerkung" />
                </div>
                <div class="form-group">
                    <label for="agb">AGB</label>
                    <f:form.checkbox property="agb" value="1" />
                </div>
                
                <f:form.submit class="btn btn-default" value="Teilnehmen" />
            </f:form>
```

Wird das also ausgelöst springen wir in die createAction:

```php
/**
     * action create
     *
     * @param \Musicalplanet\MpGewinnspiele\Domain\Model\Teilnahme $newTeilnahme
     * @return void
     */
    public function createAction(
        \Musicalplanet\MpGewinnspiele\Domain\Model\Gewinnspiel $gewinnspiel,
        \Musicalplanet\MpGewinnspiele\Domain\Model\Teilnahme $newTeilnahme)
    {
        $gewinnspiel->addTeilnahme($newTeilnahme);
        
        $this->objectManager->get('Musicalplanet\\MpGewinnspiele\\Domain\\Repository\\GewinnspielRepository' )->update($gewinnspiel);
        
        $this->redirect('show','Gewinnspiele','MpGewinnspiele',array('gewinnspiel'=>$gewinnspiel));
    }
```

Das klappt auch alles... Und es wird auch die Teilnahme erstellt. Allerdings gleich zwei mal...?
Warum?!

Hat dazu jemand eine Idee?

Lg M.

## Antworten

### [#2](https://www.typo3.net/d/126446-child-wird-immer-doppelt-angelegt/2) · pstranghoener · 2017-12-01

Hi,

ich pinne deine Frage nach oben, damit sie schneller beantwortet wird.

Liebe Grüße
Philipp

### [#3](https://www.typo3.net/d/126446-child-wird-immer-doppelt-angelegt/3) · mbuchegger · 2017-12-01

Danke dir. ;)

---

Quelle: „Child wird immer doppelt angelegt?!“, typo3.net, https://www.typo3.net/d/126446-child-wird-immer-doppelt-angelegt
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
