Je veux afficher 404 page d'erreur pour que j'ai fabriqué un fichier ERROR404.PHP dans mon dossier protégé / affichage / système.
Par défaut, j'ai SITECONTROLLER et contenait une fonction d'action d'erreur comme ci-dessous P>
throw new CHttpException(404, 'Page not found');
4 Réponses :
Chaque fois que des erreurs se produisent, l'erreur d'action dans SiteController est appelée. Vous pouvez personnaliser l'itinéraire d'erreur dans cette action, vous pouvez faire quelque chose comme ceci:
if(404==Yii::app()->errorHandler->error->code){ //go to custome error page else //code default error.php
Vous voulez dire que, si, autre condition de la vue Erreur, puis ajoutez des vues partielles en conséquence? (Je pensais que cela devrait être un automatique si j'utilise ERROR404.PHP dans le répertoire système. ???
Oui..Je ne suis pas sûr qu'il fonctionne avec automatique ... Voir les mises à jour.
Dans le tutoriel et la mise à jour du document, il n'a pas beaucoup d'informations à ce sujet. J'ai besoin de gérer les erreurs par défaut ainsi que de ma propre erreur de personnalisation des pages personnalisées 404 ou 405. Pour cela, j'ai ajouté ERRORT404.PHP dans mon Dir System et pour gérer les erreurs par défaut, j'utilise le fichier de configuration dans le nouveau contrôleur SystemController. Mais quelque peu parce que je ne travaille pas comme je veux
Tu ne peux pas faire ça avec .htaccess? Personnellement, je crée un dossier "Erreurs" avec tous les fichiers PHP HTML qui détient les messages d'erreur et modifier .htaccess pour appeler ces pages tout en venant de l'erreur.
liens forts>: p> < p> http://www.javascriptkit.com/howto/htaccess2.shtml p> http://www.addedbytes.com/for -Beginners / Error-Documents-for-Débutants / P> Exemples forts>: P> Créer un fichier .htaccess dans le répertoire souhaité Les pages à appeler et dans le fichier texte, écrivez la ligne suivante: p> supposant qu'il y a une page appelée 404.html dans le même répertoire, quand une page 404 non trouvée Erreur est gagnée, la page 404.html sera appelée. p> Les mêmes œuvres avec d'autres codes d'erreur: p> supposant qu'une erreur 500 a été créée et Un fichier 500Error.html existe dans le même répertoire. P> p>
Je sais que de faire cela en utilisant Htaccess, mais j'apprends Yii et mon système requis pour que je dois l'utiliser via Yii. Bienveillez-vous si vous avez une idée de la façon de faire cela en utilisant Yii car même son tutoriel est très vague et ne donne pas du tout plus large. Aidez-moi les gars ...
Utilisez ce code pour activeError em>: in vues / site Créez error404.php em> pour 404 erreurs et erreur .php em> pour le reste. p> ou vous pouvez définir des paramètres dans la configuration pour les erreurs que vous souhaitez gérer différemment et vérifier le code d'erreur par rapport à celui-ci: P> $app = Yii::app();
if( $error = $app->errorHandler->error->code )
{
if( Yii::app()->request->isAjaxRequest )
echo $error['message'];
else
$this->render( 'error' . ( in_array( $error, $app->params[ 'customErrorPages' ] ) ? $error : '' ), $error );
}
Je devais le changer à ce si ($ error = yii :: app (app () -> ErrorHandler-> Error ['Code']) CODE>
ERROR-> CODE CODE> Donnait moi des erreurs. Aussi
getvieviefile code> me donne cette erreur.
CWEBApplication et ses comportements ne possèdent pas de méthode ni de fermeture nommée "geviewfile". (/ Applications / XAMPP / XAMPPFILES / HTDOCS / WM / Common / LIB / YII / FRA MEWORK / BASE / CCOMPONE NT.PHP: 266) Code> Toutes les idées?
Le message d'erreur pour ERROR-> CODE CODE> est
Avis: essayer d'obtenir une propriété de non-objet dans / Applications / XAMPP / XAMPFFILES / HTDOCS / WM / Backers / Contrôleurs /SITECONTROLLER.PHP ON ligne 48 code> @boris
Vous avez raison. Il n'y a pas de méthode geveviewfile dans la classe d'applications. Devrait appeler la méthode du contrôleur: $ this-> gevieviefile (...)
Dans les dernières versions du framework (je travaille avec 1.14) utilisez: car erreur em> est un tableau. P> P> P> P> >