2014-11-25 60 views
2

我試圖在Zend Framework 2應用程序中使用自定義http狀態代碼498 - Token Invalid發送響應。這顯然不起作用,因爲標準的Zend Response類不允許自定義http代碼。如何在ZF2中使用自定義(非標準)HTTP狀態代碼

所以我創建了處理這個HTTP代碼,並在我的行動回到我自己的響應等級:

$response = new CustomResponse(); 
$response->setStatusCode(498); //basic zend response objects throws InvalidArgumentException 

return $response; 

雖然沒有拋出異常,瀏覽器說,它返回500錯誤。

如何讓此工作繼續?

回答

4

ZF2中的HTTP Response類嚴格遵循狀態碼的RFC 2616。這是一個很好的做法,當您傳遞一個未知的狀態代碼時,setStatusCode()方法將引發異常。

無論如何,您不需要創建自定義響應對象來返回非標準的HTTP狀態碼。有一個setCustomStatusCode()方法存在這個要求。

試試這個在任何控制器動作:

public function myAction() 
{ 
    $response = $this->getResponse(); 
    $response->setCustomStatusCode(498); 
    $response->setReasonPhrase('Invalid token!'); 
    return $response; 
} 
+0

這是一個偉大的東西隊友!我應該更準確地分析響應類... – 2014-11-26 09:31:55

相關問題