IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MVC PHP Discussion :

Invalid controller specified


Sujet :

MVC PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 102
    Points : 47
    Points
    47
    Par défaut Invalid controller specified
    Bonjour,

    J'ai une erreur au moment où je clique pour lancer une action
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    An error occurred
    Page not found
    Exception information:
    
    Message: Invalid controller specified (TicketAdslSdsl)
    Stack trace:
    
    #0 /var/www/ticket_incident/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
    #1 /var/www/ticket_incident/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
    #2 /var/www/ticket_incident/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
    #3 /var/www/ticket_incident/public/index.php(28): Zend_Application->run()
    #4 {main}  
    
    Request Parameters:
    
    array (
      'controller' => 'TicketAdslSdsl',
      'action' => 'add',
      'module' => 'default',
    )

    voici mon index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    <?php
     
     
     
    // Define path to application directory
     
    defined('APPLICATION_PATH')
     
        || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
     
     
     
    // Define application environment
     
    defined('APPLICATION_ENV')
     
        || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
     
     
     
    // Ensure library/ is on include_path
     
    set_include_path(implode(PATH_SEPARATOR, array(
     
        realpath(APPLICATION_PATH . '/../library'),
     
        realpath(APPLICATION_PATH . '/models'),
     
        get_include_path(),
     
    )));
     
     
     
    /** Zend_Application */
     
    require_once 'Zend/Application.php';
     
     
     
    // Create application, bootstrap, and run
     
    $application = new Zend_Application(
     
        APPLICATION_ENV,
     
        APPLICATION_PATH . '/configs/application.ini'
     
    );
     
     
     
    $application->bootstrap()
     
                ->run();
    quelqu'un a une idée et merci d'avance

  2. #2
    Membre habitué
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 144
    Points : 151
    Points
    151
    Par défaut
    En réalité l'erreur est tout bête à résoudre.
    Premièrement, tu as changé la structure de ton application. Maintenant celle ci doit utiliser des modules.

    L'erreur indique que la vue correspondant au ErrorController n'est pas trouvé. Il faut que tu déplace le contenu du dossier "application/views/scripts" dans le dossier de vue de ton module par défaut (FrontEnd) : "application/modules/views/scripts".

    Tu as fait la même manipulation avec ton controleur en le déplaçant dans le dossier de ton module.

    En théorie, si tu es partie de la structure par défaut, il doit y avoir deux dossiers "error" et "index".

    Le plus simple était bien entendu de déplacer "application/controllers", "application/views" et "application/models" à la racine de ton module "FrontEnd".

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 102
    Points : 47
    Points
    47
    Par défaut
    Bonjour,

    Je te remercie pour ta réponse.

    En fait j'ai oublié de signalé que mon projet marche bien sous windows et que ce problème survient quand je déploie sous Ubuntu.
    D'autre part, je n'ai pas changé l'arborescence par défaut. Mon projet est crée avec Zend 1.10.6

    La correction de ce bug est tout simplement que Linux est sensible à la casse et comme mon contrôleur s'appelle TicketAdslSdslController, l'exception
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Invalid controller specified (TicketAdslSdsl)
    est levé.

    Pour le corrige je l'ai renommé TicketadslsdslController avec un "a" et "s" en minuscule.

    Conseil à ceux qui travaille sous Window et souhaite déployer sous Linux, ne faites pas la même erreur que moi car j'ai souffert pour renommer tout mes controlleurs, mes tables, mes Textarea....
    N'attendez pas la dernière minute pour dire ça marche bien sous Windows, donc ça doit marcher sous Linux.

    Par contre, s'il est possible de paramétrer linux pour qu'il ne soit pas sensible à la casse, ça serait le top

  4. #4
    Membre habitué
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 144
    Points : 151
    Points
    151
    Par défaut
    Deux solutions étaient donc possibles. La première est celle que tu a utilisé (renomé ton controleur en minuscule), ou tu peut également utiliser des tirer dans l'adresse HTTP.

    Exemple : http://localhost/zfproject/ticket-sdsl-sdsl va utiliser le controleur TicketAdslSdsl

  5. #5
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Ce n'est pas deux solution, si tu écris TicketAdslSdslController , alors il faut appeler ce controller avec des tirets, c'est les conventions de ZF

  6. #6
    Membre habitué
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 144
    Points : 151
    Points
    151
    Par défaut
    Je suis d'accord avec le fait que c'est la convention de nommage de Zend. Cependant je maintiens le fait que pour ce problème là les deux solutions sont, SOIT renommer le contrôleur en "Ticketadslsdsl" et donc l'appeler avec l'url suivante "http://localhost/zfproject/ticketadslsdsl", SOIT renommer le contrôleur en "TicketAdslSdsl" et donc l'appeler avec l'url suivante "http://localhost/zfproject/tickets-adsl-sdsl".

  7. #7
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    oui, mais comme le controller étais au départ en camelCase.....la solution va de soi....mais effectivement les deux sont valable

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/06/2010, 16h19
  2. [ZF 1.9] Message: Invalid controller class (" ")
    Par Renko dans le forum MVC
    Réponses: 5
    Dernier message: 04/09/2009, 20h39
  3. Réponses: 3
    Dernier message: 12/09/2008, 11h06
  4. invalid drive specified
    Par diod dans le forum Windows XP
    Réponses: 0
    Dernier message: 10/12/2007, 16h17
  5. ORA-24373 : invalid length specified for statement
    Par fa_say dans le forum Oracle
    Réponses: 2
    Dernier message: 19/11/2005, 14h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo