Я пытаюсь получить информацию об устройствах, которые обращаются к нашему приложению. Я интегрировалMobileDetectBundle«bundle в версии 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"
Пожалуйста, помогите мне решить эту проблему.
Проблема с $this
который предположительно является экземпляром вашего класса контроллера, но имеет значение null, что означает, что вы вызываете его где-то (возможно, внутри конструктора контроллера), где нет $this
еще.
решение действительно — Внедрение Зависимости. вам лучше внедрить этот сервис в ваш контроллер (который определяется как сервис автоматически через автоматическое подключение) и использовать его внутри вашего контроллера:
class MyController
{
// ...
protected $mobileDetector;
public function __construct(MobileDetector $mobileDetector)
{
$this->mobileDetector = $mobileDetector;
$this->mobileDetector->isMobile();
$this->mobileDetector->isTablet();
}
// ...
}
Других решений пока нет …