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 に答える