Ich habe einen Dienst, der Daten für eine Seite sucht, aber wenn diese Daten nicht gefunden werden, sollte auf die Homepage umgeleitet werden. Für das Leben von mir kann ich nicht herausfinden, wie man das in Sf2 macht. Es gibt so viele verschiedene Möglichkeiten, mit Diensten und Routern zu arbeiten, aber keine scheint zu funktionieren.Redirect von einem Dienst in Symfony2
namespace Acme\SomeBundle\Services;
use Acme\SomeBundle\Entity\Node;
use \Doctrine\ORM\EntityManager;
use \Symfony\Component\HttpKernel\Event\GetResponseEvent;
use \Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use \Symfony\Bundle\FrameworkBundle\Routing\Router;
use \Symfony\Component\Routing\Generator\UrlGenerator;
use Symfony\Component\HttpFoundation\RedirectResponse;
class NodeFinder
{
private $em;
private $router;
public function __construct(EntityManager $em, Router $router)
{
$this->em = $em;
$this->router = $router;
}
public function getNode($slug)
{
$node = $this->em->getRepository('SomeBundle:Node')->findOneBy(array('slug' => $slug));
if (!$node) { //if no node found
return $this->router->redirect('homepage', array(), true);
}
}
Vielen Dank. Das Problem ist, dass ich diesen Dienst an vielen Orten benutze, so dass es viele Code-Duplizierungen gibt, die die Weiterleitung im Controller machen. – Acyra
Sally hat Recht, Sie sollten alle Weiterleitungen in Ihrem Controller vornehmen, nicht in Ihrem Dienst. –
@ChrisMcKinnel weil? Ich habe viele Male 'wenn Benutzer nicht eingeloggt ist, Umleitung zur Anmeldeseite 'wirklich? Ich muss das 100 Mal duplizieren? schlecht schlecht schlecht – Toskan