Вызов функции-члена getHost () для NULL, но это не NULL - PullRequest
0 голосов
/ 11 мая 2018

У меня есть сервис и звоню на каждой странице.Я получаю сообщение об ошибке: вызов функции-члена getHost () для null, но когда я выкидываю запрос, я получаю хост.После моего шаблона отображается сообщение об ошибке.

Вот мой сервис:

class ClientService
{
/**
 * @var \Doctrine\ORM\EntityManager
 */
private $em;

/**
 * @var \Symfony\Component\HttpFoundation\RequestStack;
 */
private $request;

/**
 * @var \Symfony\Component\Routing\Router;
 */
private $router;

public function getEm()
{
    return $this->em;
}

public function __construct(EntityManager $em, RequestStack $request) {
    $this->setEm($em);
    $this->request = $request;
}

public function getRequest()
{
    return $this->request;
}

public function getData()
{
    $client = $this->getEm()
        ->getRepository(Client::class)
        ->findOneBy(['serveralias' => $this->getRequest()->getCurrentRequest()->getHost()]);

    return $client;
}


}

1 Ответ

0 голосов
/ 11 мая 2018

Ну, проверяя RequestStack api, вы можете видеть, что getCurrentRequest() может также возвращать null, вероятно, когда вообще нет запроса.

Поэтому, прежде чем вызывать функцию для чего-то, что может быть null, я бы всегда проверял ее текущее значение

public function getData()
{
    if (!$currentRequest = $this->getRequest()->getCurrentRequest()) return null;
    $client = $this->getEm()
        ->getRepository(Client::class)
        ->findOneBy(['serveralias' => $currentRequest->getHost()]);

    return $client;
}
...