Я новичок в Symfony, я пытаюсь использовать инъекцию зависимостей, чтобы получить пользователя в сервисе (я думаю)
services.yaml:
App\Service\Test\RESTAuthenticatedService:
calls:
- method: getTrigramme
arguments:
- '@security.token_storage'
В моем RESTAuthenticatedService.php:
namespace App\Service\Test;
....
class RESTAuthenticatedService extends AbstractController {
protected $session;
private $user;
....
public function getTrigramme(){
$user = $this->token_storage->getToken()->getUser();
ERROR :
Notice: Undefined property: App\Service\Test\PrestataireService::$token_storage
Можете ли вы мне помочь, пожалуйста?
Хорошо, сначала спасибо всем, я пробую то, что высказал, и у меня есть эта ошибка:
Too few arguments to function App\Service\Test\ClientService::__construct(), 0 passed in D:\www\Interface_SAT\src\Controller\RecherchePrestataires.php on line 60 and exactly 2 expected
В моем контроллере RecherchePrestataires.php у меня есть:
.....
public function rechercher(Request $request) {
....
$recherchePresta = new PrestataireService();
В классе файлов PrestataireService у меня просто:
class PrestataireService extends ClientService {
В ClientService:
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
class ClientService extends RESTAuthenticatedService
{
public $user;
public function __construct(SessionInterface $session, TokenStorageInterface $tokenStorage)
{
parent::__construct($session, $tokenStorage);
$this->setSession($session);
}
И в RESTAuthenticatedService: Я сделал:
public function __construct(SessionInterface $session, TokenStorageInterface $tokenStorage)
{
$this->token_storage = $tokenStorage;
Извините, но я пробую много вещей.