2015-10-08 97 views
2

我需要在控制器中檢測移動條件。我在我的控制器中嘗試了下面的代碼。CakePHP 3:如何通過requestHandler檢測控制器中的移動?

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() 

如何移動的控制器檢測?

回答

5

請求處理程序是沒有必要的,既然all the request handler does is proxy the request object

public function isMobile() 
{ 
    $request = $this->request; 
    return $request->is('mobile') || $this->accepts('wap'); 
} 

該控制器還具有直接訪問請求對象,所以在代碼該問題可以改寫爲:

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

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

我認爲這將是

$this->RequestHandler->isMobile() 
相關問題