3

我正在使用 CHttpException(404, $message) 行处理 404,$message 变量是一个 HTML 字符串,用于实现一些样式。但是 CHttpException() 对我的 $message 进行编码,将 HTML 呈现为无用的转义字符串。为了输出 HTML,有什么办法可以绕过 CHttpException 的字符串编码?

/**
* 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;
        }

    // ...
4

1 回答 1

5

CHttpException不编码任何东西。默认情况下,消息被编码在错误视图中protected/views/site/error.php- 我想您只需在该视图中更改它(或者如果您确实更改了您的自定义错误视图)。只有你应该知道 yii 抛出的标准错误不是为 HTML 准备的,所以你应该找到一些方法来区分你的代码抛出的 CHttpException 和 Yii 抛出的。

于 2013-01-13T21:15:09.187 回答