2010-12-21 5 views
0


Je suis impatient de créer un contrôleur par défaut, quelle que soit l'URL à laquelle vous accédez.
Signification, coutume 404.Contrôleur par défaut CodeIgniter

class MY_Exceptions extends CI_Exceptions 
{ 
var $ci; 

public function __construct() 
{ 
    parent::CI_Exceptions(); 
    $this->ci =& get_instance(); 
} 

function show_404($page = '') 
{ 
    //load view here 

} 

}

Je reçois get_instance est indéfini. (parce qu'il a été défini après l'appel des bibliothèques)
Y a-t-il un moyen de créer un contrôleur 404 personnalisé dans codeignigter 1.7.2 sans jouer avec le code de base du système.

Merci

+0

"Parce qu'il a été défini après que les bibliothèques s'appellent" ne pas de sens. Si c'était défini/après/ça devrait aller. –

Répondre

0

Cela devrait fonctionner correctement. Assurez-vous qu'il se trouve dans le dossier 'application/libraries' et assurez-vous que 'MY_' est défini comme nom de bibliothèque personnalisée dans votre configuration. En outre, si vous faites function __construct(){}, vous pouvez faire parent::__construct().

+0

J'ai fait ce que vous avez expliqué, cela ne fonctionne pas ... Toute autre façon de créer Custom CONTROLLER (!) Pour 404? Merci – fatnjazzy

1

Si vous souhaitez simplement personnaliser la page 404, vous pouvez le faire sous la page /system/application/errors/error_404.php. Le seul inconvénient avec ceci est que vous ne pouvez pas utiliser l'objet $this, c'est strictement HTML/CSS ou PHP intégré (pas d'accès à vos bibliothèques, modèles, etc.).

Il s'agit de la page que CodeIgniter affichera par défaut lorsqu'il ne trouvera pas de contrôleur pour gérer une requête.

Vous ne savez pas si c'est ce que vous essayez de faire ou non, mais ce serait la manière la plus simple de créer une page 404 personnalisée.

+0

+1 en supposant que c'est ce que l'OP veut, pourquoi se donner la peine de réinventer la roue – Ross

+0

Merci, j'ai besoin d'un contrôleur et non du HTML. – fatnjazzy

+0

Vous pouvez toujours mettre 'redirect ('controller/function')' dans la page 'errors/error_404.php'. –

Questions connexes