保護された/view/systemフォルダーにerror404.phpファイルを作成したための404エラーページを表示したいと思います。
デフォルトで私はSitecontrollerを持っていて、それは以下のようなエラーアクション機能を含んでいました
public function actionError()
{
if($error=Yii::app()->errorHandler->error)
{
if(Yii::app()->request->isAjaxRequest)
echo $error['message'];
else
$this->render('error', $error);
}
}
メイン設定ファイル内では、次のように定義されています
'errorHandler'=>array(
// use 'site/error' action to display errors
'errorAction'=>'site/error',
),
私の問題は、404ページのみをカスタマイズする必要があることです。残りのエラーは、サイトコントローラーのエラー関数によって処理される方法で処理する必要があります。しかし、私はそれを行う方法を見つけることができませんでした。設定メインから'errorAction'=>'site / error'を削除すると、次のように呼び出して404エラーが表示されます。
throw new CHttpException(404, 'Page not found');
しかし、そうすることで、レイアウトなしでページを表示することしかできません。また、他のカスタムエラーは404と同じように扱われますが、そうではありません。マニュアルを何度も読みましたが、それでも解決できません。