Zum Inhalt springen

Relation zwischen zwei Models im Controller füllen?

Erstellt am 17. Oktober 2011 · Noch keine Antworten

Tags: Frage

sundawn ·

Hallo,

ich habe ein Model Answer welches per n:1 Relation auf ein Model Employee verweist.
Answer hat in der Tabelle also die Employee.Uid als Feld.

Wenn ich den Employee nun im Controller per $newAnswer->setEmployee() setze wird sobald
$this->answerRepository->add($newAnswer); aufgerufen wird ein Fehler auftreten.

Die ganze createAction:

public function createAction(Tx_MyExt_Domain_Model_Answer $newAnswer) {
                $newAnswer->setEmployee($this->currentUser);      
		$this->answerRepository->add($newAnswer);
		$this->flashMessageContainer->add('Your new Answer was created.');
		$this->redirect('new');
	}

Führt dann zu Fehler:

ERROR
The requested URL could not be retrieved

Ungültige Antwort Fehler erhalten als versucht wurde die Anfrage zu bearbeiten:

    POST /my-ext/myext/?tx_myext_plugin%5Baction%5D=create&tx_myext_plugin%5Bcontroller%5D=Answer HTTP/1.1
    Host: www.mydomain.net
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Proxy-Connection: keep-alive
    Referer: http://www.mydomain.net/my-ext/myext/fe5de98dbea01fac9f71d46cfae81012/?tx_myext_plugin%5Baction%5D=new&tx_myext_plugin%5Bcontroller%5D=Answer
    Cookie: CAKEPHP=3d1edccecbaab074440c10fb3a3d2e84; PHPSESSID=022d4782e9ac5fd70ff326e0aa3a8de7; be_typo_user=2dedc38564e385a4e24ff524324a4e97; typo3-login-cookiecheck=true; fe_typo_user=c2f06828ae6066949b3a7d3715512558
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 748

Die HTTP Antwortnachricht, die vom Kontaktierten Server empfangen wurde, wurde nicht verstanden oder ist falsch. Bitte kontaktieren sie den Webmaster.

Webserver ist ein Debian mit PHP 5.2

Wenn ich alles identisch mache, aber statt

$newAnswer->setEmployee($this->currentUser);

in der createAction auszuführen übergebe ich den currentUser in der newAction an die View

$this->view->assign('user', $this->currentUser);

und setze im Template dann ein hidden Feld

<f:form.hidden property="employee" value="{user.uid}" />

Dann funktioniert alles.
Dieser Workaround funktioniert aber leider nicht wenn ich ein Formular bauen möchte welches mir gleich mehrere Objekte vom Typ Answer anlegt.

Ist das ein Bug in extbase oder mache ich irgendwas falsch?