kann jemand ein komplettes Beispiel für die Blameable Gedmo Erweiterung und vor allem die Konfiguration des Blameable Listener?Konfiguration schuldige Doktrin Erweiterung mit Symfony2
Ich bin mit dem Code, der von der Dokumentation:
* @var User $createdBy
*
* @Gedmo\Blameable(on="create")
* @ORM\ManyToOne(targetEntity="Cf\UserBundle\Entity\User")
* @ORM\JoinColumn(name="createdBy", referencedColumnName="id")
*/
private $createdBy;
/**
* @var User $updatedBy
*
* @Gedmo\Blameable(on="update")
* @ORM\ManyToOne(targetEntity="Cf\UserBundle\Entity\User")
* @ORM\JoinColumn(name="updatedBy", referencedColumnName="id")
*/
private $updatedBy;
aber die createdBy und updatedBy Datenbankspalten sind immer NULL.
Die Dokumentation bietet ein Beispiel zum Konfigurieren der anderen Listener (z. B. Zeitstempel, die ich funktionierte), aber ich finde kein Beispiel oder Dokumentation für die tadellose Listener.
Danke für jede Hilfe !!
============================================== =================
EDIT Jean zu beantworten:
ja ich hinzugefügt, um die Nutzung, die ist:
use Gedmo\Mapping\Annotation as Gedmo;
ich benutze auch die Timestampable mit dem angegebenen Merkmal:
use Gedmo\Timestampable\Traits\TimestampableEntity;
// doctrine comments removed
class Document
{
use TimestampableEntity;
...
}
und die Zeitstempel konfiguration auf ist:
services:
gedmo.listener.timestampable:
class: Gedmo\Timestampable\TimestampableListener
tags:
- { name: doctrine.event_subscriber, connection: default }
calls:
- [ setAnnotationReader, [ @annotation_reader ] ]
Zeitspray funktioniert gut. Ich habe versucht, eine ähnliche Konfiguration für die tadelnswert Zuhörer, da sie eine setUserValue
Methode hat:
gedmo.listener.blameable:
class: Gedmo\Blameable\BlameableListener
tags:
- { name: doctrine.event_subscriber, connection: default }
calls:
- [ setAnnotationReader, [ @annotation_reader ] ]
- [ setUserValue, [ @security.token_storage ] ]
aber es funktioniert nicht, ich diesen Fehler (die 4-Bundles sind diejenigen, die in meinem Projekt verwendet wird):
Die Klasse 'Symfony \ Component \ Sicherheit \ Core \ Authentication \ Token \ Storage \ TokenStorage' wurde nicht in den konfigurierten Namespaces Cf \ UserBundle \ Entity, Cf \ DocumentBundle \ Entity, Cf \ SouffleBundle \ Entity, FOS \ UserBundle gefunden \ Modell
Ich verstehe, dass die Benutzer-ID oder das Sicherheitstoken als Argument in einem w fehlt Ja oder anders, aber ich kann nirgends ein Beispiel finden. Da stecke ich fest. Irgendeine Idee ?
Haben Sie den 'use' auf Ihre Klasse setzen? Kannst du uns das zeigen? – Jean
Darüber hinaus funktioniert Blameable nur, wenn die Entität mit dem Sicherheitskontext auf einem Benutzer-Token erstellt und aktualisiert wird, das ein Benutzer-Token enthält, das in Ihrem Feld berücksichtigt und beibehalten wird. – Jean
Verwenden Sie [https://github.com/stof/StofDoctrineExtensionsBundle](https://github.com/stof/StofDoctrineExtensionsBundle)? Ich habe es und tadelige Werke. – kba