Question

J'ai créé le fichier MY_Router.php À l'intérieur du répertoire de base avec ce code:

<?php
class MY_Router extends CI_Router {

    function MY_Router()
    {
        parent::CI_Router();
    }

    function _validate_request($segments)
    {
        // Comprueba que el controlador no existe
        if (!file_exists(APPPATH.'controllers/'.$segments[0].EXT))
        {
            $segments = array("page", "load", $segments[0]);

        }
        return parent::_validate_request($segments);
    }
}
?>

Lorsque j'appelle l'application, cette erreur apparaît:

Erreur fatale: appel à la méthode non définie ci_router :: ci_router () dans /home/david/public_html/codeigniter_2.1.0/application/core/my_router.php sur la ligne 6

Où est le problème?

Était-ce utile?

La solution

Le problème est qu'il n'y a pas de méthode dans la classe CI_ROUTER appelée CI_Router(). Dans PHP4, les constructeurs ont le même nom que la classe. Dans PHP5, les constructeurs sont nommés __construct().

Pour résoudre le problème, modifiez le constructeur dans la classe my_router de

function MY_Router()
{
    parent::CI_Router();
}

à

function __construct()
{
    parent::__construct();
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top