在 null "Symfony Php" 上调用成员函数 get()
Call to a member function get() on null "Symfony Php"
我正在尝试获取访问我们应用程序的设备的详细信息。我在 php symfony 3.4 版本中集成了“MobileDetectBundle”包,并按照文档中提供的步骤进行操作。但是我在这一行收到以下错误
$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
上,它假定是您的控制器 class 的一个实例,但它是空的,这意味着您在某个地方(可能在控制器构造函数内部)调用它,其中没有 $this
还没有。
解决方案确实是依赖注入。你最好将该服务注入你的控制器(通过自动连接自动定义为服务)并在你的控制器中使用它:
class MyController
{
// ...
protected $mobileDetector;
public function __construct(MobileDetector $mobileDetector)
{
$this->mobileDetector = $mobileDetector;
$this->mobileDetector->isMobile();
$this->mobileDetector->isTablet();
}
// ...
}
我正在尝试获取访问我们应用程序的设备的详细信息。我在 php symfony 3.4 版本中集成了“MobileDetectBundle”包,并按照文档中提供的步骤进行操作。但是我在这一行收到以下错误
$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
上,它假定是您的控制器 class 的一个实例,但它是空的,这意味着您在某个地方(可能在控制器构造函数内部)调用它,其中没有 $this
还没有。
解决方案确实是依赖注入。你最好将该服务注入你的控制器(通过自动连接自动定义为服务)并在你的控制器中使用它:
class MyController
{
// ...
protected $mobileDetector;
public function __construct(MobileDetector $mobileDetector)
{
$this->mobileDetector = $mobileDetector;
$this->mobileDetector->isMobile();
$this->mobileDetector->isTablet();
}
// ...
}