Вызов функции-члена get () для нулевого "Symfony Php" - PullRequest
0 голосов
/ 24 ноября 2018

Я пытаюсь получить информацию об устройствах, которые обращаются к нашему приложению.Я интегрировал пакет " MobileDetectBundle " в версию php symfony 3.4 и выполнил действия, описанные в документации.Но я получаю следующую ошибку в этой строке

$mobileDetector = $this->get('mobile_detect.mobile_detector');

Фрагмент кода:

$mobileDetector = $this->get('mobile_detect.mobile_detector');
$mobileDetector->isMobile();
$mobileDetector->isTablet();

Ошибка:

"Call to a member function get() on null"

Пожалуйста, помогите мне решить эту проблему.

1 Ответ

0 голосов
/ 30 ноября 2018

Проблема в $this, который считается экземпляром вашего класса контроллера, но имеет значение null, что означает, что вы вызываете его где-то (возможно, внутри конструктора контроллера), где еще нет $this.

решение действительно - инъекция зависимости.вам лучше внедрить этот сервис в ваш контроллер (который определяется как сервис автоматически через автоматическое подключение) и использовать его внутри вашего контроллера:

class MyController
{
    // ...

    protected $mobileDetector;

    public function __construct(MobileDetector $mobileDetector)
    {
        $this->mobileDetector = $mobileDetector;
        $this->mobileDetector->isMobile();
        $this->mobileDetector->isTablet();
    }

    // ...
}
...