2016-03-31 32 views
1

Ich begann symfony mit nicht allzu langer Zeit und im Moment habe ich mit diesem Problem bin zu kämpfen:Benutzerinformation auf Entitäten symfony

I „die“ Informationen auf Unternehmensebene haben beschlossen, so habe ich diese zusätzlichen 4 prameters definiert für jede Entität:

Mein Problem ist jetzt wo und wie ich createdBy und updatedBy bevölkern sollte. ATM Ich mache das in meinem Controller, bevor ich in der Datenbank bleibe. Ich habe ein Problem festgestellt, wenn eine Entität eine Eigenschaft einer anderen Entität ist und sagen, ich habe eine Entität namens Post, die eine Eigenschaft Bilder vom Typ Dokument die Entitäten Post und Document beide "wer" Informationen über sie und Bilder Eigenschaft in Post hat wie folgt definiert:

/** 
* @var array 
* 
* @ORM\ManyToMany(targetEntity="Nisand\DocumentsBundle\Entity\Document", cascade={"persist"}) 
* @ORM\JoinTable(name="blog_documents", 
*  joinColumns={@ORM\JoinColumn(name="post_id", referencedColumnName="id")}, 
*  inverseJoinColumns={@ORM\JoinColumn(name="document_id", referencedColumnName="id")} 
*  ) 
*/ 
private $images; 

für Post annehmen, stelle ich createdBy in der Steuerung vor persistierenden aber auf Dokument wie soll die Arbeits Ursache, die durch die Kaskaden Regel beibehalten werden?

Wie behandeln Sie in Ihren Anwendungen die "Wer" -Spalten?

Antwort

1

Versuchen Sie dieses Bündel: StofDoctrineExtensionsBundle und verwenden Sie Blameable Erweiterung.

Sie müssen den aktuellen Benutzer mit BlameableListener einstellen. Und es wird Ihren Anwendungsfall abdecken.

Dokumentation für Blameable ist hier: https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/blameable.md

+0

https://github.com/KnpLabs/DoctrineBehaviors macht das gleiche ich über sie weiß, ich will es selbst tun, was ich mit 30 3. Partei Bundles am Ende, die ich habe zu verstehen und zu prüfen und zu lernen, auch zu verwenden. – Noooooob

+0

stof/doctrine-extensions-bundle ist viel beliebter als KNP-Lösung. 3324842 vs 285424 Downloads (von packagist.org). Aber die Wahl liegt bei dir. Beachten Sie, dass die KNP-Bibliothek php> = 5.4 und stof php> = 5.3.2 benötigt. Beide Lösungen sind ähnlich. Froh, dass meine Antwort dich in die richtige Richtung wies. –