2016-12-19 3 views
0

I Lehre EntityManager in meinem Skript, wählen Sie verwenden und Update funktioniert immer, so richtig initialisiert EntityManager ist:Erstellen Sie ein neues Element mit dem Doktrin-Entity-Manager?

$article = $entityManager->find('Models\Article', 5); 
echo $article->getTitle(); 
or: 
$article->setTitle('Updated!'); 

aber wenn ich versuche neues Element zu erstellen/speichern dann die Seitenumbrüche, ist der Code:

$item = new Article(); 
$item->setAuthorId(1); 
$item->setTitle('Created item!'); 
$entityManager->persist($item); 
$entityManager->flush(); 

Es ist wie documentation page

auf offiziellen erstellt

Was ist hier falsch ich tun?

+1

Was ist der Fehler, den Sie bekommen? – Youssef

+0

Was bedeutet "dann die Seite bricht"? – Wilt

+0

@Youssef Ich versuchte jetzt in einer leeren Seite, nachdem ich "flush()" dann bekomme ich Redirect-Fehler, in Firefox ist dies die Nachricht "Die Seite wird nicht richtig umgeleitet" – Caner

Antwort

1

scheint, dass Sie nicht die Beziehung des Objekts mit der Author Einheit angeben:

$item->setAuthorId(1); 

Wahrscheinlich Ihr Unternehmen ArticleAuthor eine Beziehung mit dem Unternehmen haben. In diesem Fall sollten Sie eine geeignete Setter-Methode haben (einfach setAuthor(Author $author)), die den Verweis eines Author-Objekts zuweisen. In diesem Fall könnten Sie die folgenden Schritte aus:

$item->setAuthor($entityManager->find('Models\Author', 1);); 

or Better

$item->setAuthor($entityManager->getReference('Models\Author', 1);); 

Sie auch einen kurzen Weg von Referenz des Klassenobjekt mit dem class Schlüsselwort, wie beispielsweise verwenden:

$item->setAuthor($entityManager->getReference(Author::class, 1);); 

Hoffe diese Hilfe

+0

Es gab auch einen anderen PHP Fehler, aber auch Beziehung, danke Leute :) – Caner

Verwandte Themen