Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Frameworki _ [SF][Symfony2][SF2] LoggerInterface problem

Napisany przez: damianooo 13.07.2022, 22:13:48

Próbowałem wylogować sobie coś w klasie Repozytorium i mam taki błąd:

[2022-07-11 23:52:02] console.ERROR: Error thrown while running command "app:przypominajka". Message: "Call to a member function info() on null" {"exception":"[object] (Error(code: 0): Call to a member function info() on null at /home/dcpl/domains/test.o10.pl/src/Repository/TypeRepository.php:267)","command":"app:przypominajka","message":"Call to a member function info() on null"} []

Klasa TypeRepository :

  1. namespace App\Repository;
  2.  
  3. use App\Entity\Type;
  4. use App\Entity\User;
  5. use App\Entity\Meet;
  6. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  7. use Doctrine\Persistence\ManagerRegistry;
  8. use Psr\Log\LoggerInterface;
  9.  
  10. /**
  11.  * @method Type|null find($id, $lockMode = null, $lockVersion = null)
  12.  * @method Type|null findOneBy(array $criteria, array $orderBy = null)
  13.  * @method Type[] findAll()
  14.  * @method Type[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  15.  */
  16. class TypeRepository extends ServiceEntityRepository
  17. {
  18. private $loggger;
  19.  
  20. public function __construct(ManagerRegistry $registry, LoggerInterface $logger)
  21. {
  22. parent::__construct($registry, Type::class);
  23. $this->loggger = $logger;
  24. }
  25.  
  26. ....
  27.  
  28.  
  29. public function getNoTypedUsersList($matchday) {
  30.  
  31. // Pobranie listy telefonów użytkowników, którzy jeszcze nie podali typów
  32. $sql = 'SELECT u.phone, u.id '
  33. . 'FROM type t '
  34. . 'INNER JOIN user u ON t.user_id = u.id '
  35. . 'INNER JOIN meet m ON t.meet_id = m.id '
  36. . 'INNER JOIN matchday md ON m.matchday_id = md.id '
  37. . 'WHERE md.id = :matchday '
  38. . 'AND u.status = 1 '
  39. . 'GROUP BY u.id '
  40. . 'HAVING COUNT(t.user_id) > 0 ';
  41. $params = http://www.php.net/array('matchday' => $matchday);
  42. $userTypes = $this->getEntityManager()->getConnection()->executeQuery($sql, $params)->fetchAll();
  43.  
  44. // Pobieram wszystkich aktywnych użytkowników
  45. $userRepo = $this->getEntityManager()->getRepository(User::class);
  46. $users = $userRepo->findByStatus(1);
  47.  
  48. $this->logger->info('DC $users: ' . $users);




Wskazana w logu z błędem linia 267 to :

$this->logger->info('DC $users: ' . $users);
w powyższej metodzie getNoTypedUsersList


nie wiem czy źle wstrzyknąłem LoggerInterface ?



Napisany przez: viking 14.07.2022, 05:34:17

$this->loggger 3 g potem się odwołujesz do logger

Napisany przez: Salvation 14.07.2022, 09:23:10

Logger jest nullerm z jakiegoś powodu.
"Powiedziałeś" Symfony, że to Service? W 2 z tego co pamiętam, nie ma autowire'ingu, więc musisz jawnie przekazać klasę do swojego Repository.

Napisany przez: damianooo 14.07.2022, 15:24:58

Viking miał rację ... miałem literówkę : loggger zamiast logger.

Dzięki.

Napisany przez: Salvation 14.07.2022, 19:03:04

Czego używasz do kodowania, że IDE / Edytor tego nie wyłapał?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)