Ich habe einen Dienst, der den aktuell angemeldeten Benutzer abruft, der nur zeitweise in der Entwicklungsumgebung funktioniert.TokenStorage gibt manchmal null in Service zurück
Das Problem scheint zu sein, wenn ich die Zweig-Vorlagen ändern und aktualisiere ich den Fehler:
Error: Call to a member function getUser() on null
Wenn ich die Seite alles funktioniert, wie es sollte aktualisieren, bis ich wieder die Zweig-Vorlage aktualisieren. Dies macht die Entwicklung natürlich sehr langsam, da ich die Seite ständig aktualisiere.
Dinge, die ich bisher getan haben: -
- der dev Umgebung Cache gelöscht.
- Der Browser-Cache gelöscht.
- bestätigt der Benutzer definitiv angemeldet
Hat jemand irgendwelche Ideen (sonst würde es die auf dem zweiten Refresh nicht arbeiten), was das Problem verursachen könnte?
services.yml
myservice:
class: AppBundle\Services\MyService
arguments: ["@doctrine.orm.entity_manager", "@security.token_storage"]
MyService.php
<?php
namespace AppBundle\Services;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
class MyService
{
private $em;
private $token;
public function __construct($entityManager, TokenStorageInterface $tokenStorage)
{
$this->em = $entityManager;
$this->token = $tokenStorage->getToken();
}
public function doSomething()
{
$user_id = $this->token->getUser()->getID();
return;
}
}
Zweig Vorlage
{{ myservice.doSomething }}
Hinweis:Das ist der nackte Knochen-Code, der nach wie vor das Problem verursacht
Kontrolle: http://stackoverflow.com/questions/24916638/symfony-dependency-injection-in-twig-extension –
Hallo, haben Sie gefunden, was das Problem verursacht? Ich erlebe es auch. Vielen Dank! – iamjc015