2013-01-13 51 views
3

我正在用CHttpException(404,$ message)行處理404s,$ message變量是一個HTML字符串來實現一些樣式。但CHttpException()編碼我的$消息,將HTML呈現爲無用的轉義字符串。有沒有辦法繞過CHttpException的字符串編碼,以便輸出HTML?任何方式傳遞CHttpException HTML消息字符串?

/** 
* From PostsController.php 
*/ 

// ... 

public function actionCategory($id) 
{ 

    $categoryModel = Categories::model()->findByAttributes(array('idCategory'=>$id)); 

    if($categoryModel===null){ 

     $message = "<div class=\"alert alert-danger\">Page Not Found</div>"; 
     throw new CHttpException(404, $message); 
      return; 
     } 

    // ... 

回答

5

CHttpException不編碼任何東西。默認情況下,消息在錯誤視圖中編碼,該錯誤視圖在protected/views/site/error.php中 - 我想你只需要在該視圖中更改它(或者如果您更改了該視圖,那麼您的自定義錯誤視圖)。只有你應該知道,由yii拋出的標準錯誤並沒有爲HTML準備,所以你應該找到一些方法來區分你的代碼拋出的CHttpException和Yii拋出的錯誤。