我正在使用CHttpException(404,$ message)行处理404,而$ message变量是一个HTML字符串来实现一些样式。但是CHttpException()对我的$ message进行编码,将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;
}
// ...
答案 0 :(得分:5)
CHttpException
不会对任何内容进行编码。默认情况下,消息在错误视图中编码,该视图位于protected/views/site/error.php
中 - 我想您只需要在该视图中更改它(如果您确实更改了该视图,则自定义错误视图)。只有你应该知道yii抛出的标准错误没有为HTML准备好,所以你应该找到一些方法来区分你的代码抛出的CHttpException和Yii引发的错误。