Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP3:如何通过requestHandler检测控制器中的移动设备?_Cakephp_Cakephp 3.0 - Fatal编程技术网

CakePHP3:如何通过requestHandler检测控制器中的移动设备?

CakePHP3:如何通过requestHandler检测控制器中的移动设备?,cakephp,cakephp-3.0,Cakephp,Cakephp 3.0,我需要在控制器中检测移动设备的状况。我在控制器中尝试了以下代码 public function initialize() { parent::initialize(); $this->loadComponent('RequestHandler'); } 然后我在索引方法中编写了以下代码 if ($this->RequestHandler->is('mobile')) { //condition 1 }else { //condition 2

我需要在控制器中检测移动设备的状况。我在控制器中尝试了以下代码

public function initialize()
{
    parent::initialize();
    $this->loadComponent('RequestHandler');
}
然后我在索引方法中编写了以下代码

if ($this->RequestHandler->is('mobile')) 
{     
  //condition 1 
}else {
 //condition 2 
}
这里我得到了错误

Error: Call to undefined method Cake\Controller\Component\RequestHandlerComponent::is() 
移动设备如何在控制器中检测

我想那将是

$this->RequestHandler->isMobile()

请求处理程序对此不是必需的,因为:

控制器还可以直接访问请求对象,因此问题中的代码可以重写为:

/* Not necessary
public function initialize()
{
    parent::initialize();
} 
*/    

public function example()
{
    if ($this->request->is('mobile')) {
        ...
    } else {
        ...
    }
}

这两个示例都可以使用,对于$this->RequestHandler->isMobile(),我们需要加载“RequestHandler”组件。
/* Not necessary
public function initialize()
{
    parent::initialize();
} 
*/    

public function example()
{
    if ($this->request->is('mobile')) {
        ...
    } else {
        ...
    }
}