Ich muss einen neuen Benutzer vor dem Speichern einen Standardwert festlegen. Das Problem ist, dass ich keinen Weg finden kann, ein Objekt durch das Repository aus dem FormHandler zu bekommen.FOSUserBundle: Repository von innen abrufen FormHandler
<?php
namespace Acme\UserBundle\Form\Handler;
use FOS\UserBundle\Form\Handler\RegistrationFormHandler as BaseHandler;
use FOS\UserBundle\Model\UserInterface;
class RegistrationFormHandler extends BaseHandler
{
protected function onSuccess(UserInterface $user, $confirmation)
{
$repository = $this->container->get('doctrine')->getEntityManager()->getRepository('AcmeUserBundle:Photo');
if($user->isMale()){
$photo = $repository->getDefaultForMale();
$user->setPhoto($photo);
}
else {
$photo = $repository->getDefaultForFemale();
$user->setPhoto($photo);
}
parent::onSuccess($user, $confirmation);
}
}
Das Problem kommt aus der folgenden Zeile:
$repository = $this->container->get('doctrine')->getEntityManager()->getRepository('AcmeUserBundle:Photo');
... und ich kann nicht einen Weg finden, dieses Repository zu bekommen, oder das Unternehmen Manager von diesem FormHandler.
Vielen Dank für Ihre Hilfe! A
Perfect! Vielen vielen Dank, alles funktioniert einwandfrei :-) – Aurel
Ich musste das letzte Argument in der Service-Definition ändern zu: @ fos_user.util.token_generator – Nick
Danke, habe mir meine Zeit gerettet! In der neuen Version gibt es ein neues Argument: '@ fos_user.util.token_generator' vor '@ service_container' – Vedmant