Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 14-10-2009 04:55:50

forst
Membre
Date d'inscription: 14-10-2009
Messages: 22

Problème Lien vers controleur

Bonjour à tous

je débute avec zend framework 1.9.2 , j'ai respecté la structure MVC  des répertoires /fichiers .
Je n'arrive pas à comprendre les liens pour appeler les contrôleurs /actions malgré des dizaines de tutorial.
Dans le fichier par défauts  index/index.phtml , j'ai mis un lien pour appeler le contrôleur Membre

Code:

<a href="<?php echo $this->url(array('controller'=>'membres'));?>">Membre</a>.

mais en cliquant sur le lien  , il me met  "http://xxxx/public/membres/index" qui effectivement générer une erreur disant que le fichier est introuvable  alors que cela devrait être "http://xxxx/application/view/script/membres/index".

Si Vous voyez ce que je veux dire.

Merci

Dernière modification par forst (14-10-2009 19:02:23)

Hors ligne

 

#2 14-10-2009 09:40:59

Junk
Membre
Lieu: Paris
Date d'inscription: 18-09-2009
Messages: 27

Re: Problème Lien vers controleur

Bonjour,

si tu fais ceci:

<a href="<?php echo $this->url(array('controller' => 'toncontroller', 'action' => 'tonaction'));?>">Lelien</a>

cela veut dire que le controller "toncontroller" va etre sollicité. Ce dernier devra donc contenir une fonction tonactionAction() dans laquelle tu pourras faire des traitements. Une fois les traitements relatifs a l'action exécutés, il y a une redirection automatique vers un fichier "tonaction.phtml". Ce fichier généralement se situe sous views/scripts/toncontroller/

Si il te manque un de ces éléments cela ne fonctionnera pas wink

L'url qui s'affichera sera de la forme suivante :

http://localhost/tonapplication/public/toncontroller/tonaction/parametre1/valeurParametre1

J'espère que cette réponse te servira big_smile

Hors ligne

 

#3 14-10-2009 09:41:00

openaccess
Membre
Date d'inscription: 12-10-2009
Messages: 16

Re: Problème Lien vers controleur

Heu non ton url devrait être:
http://xxxx/membres/index/

Si il te met http://xxxx/public/membres/index je pense que c'est parceque ton DocumentRoot dans ta config apache ne pointe pas vers le dossier "public".

Hors ligne

 

#4 14-10-2009 16:29:33

forst
Membre
Date d'inscription: 14-10-2009
Messages: 22

Re: Problème Lien vers controleur

merci pour votre réponse, j'ai essayé votre solution mais je n'arrive pas  sad , c'est toujours le même erreur.

code htaccess

Code:

SetEnv APPLICATION_ENV development
SetEnv PHP_VER 5
AddHandler x-httpd-php5 .php

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

structure de répertoire

Code:

 /application/
                  + configs / application.ini
                  + controllers/ Error.php - IndexController.php - MembreController.php
                  + layouts/scripts/ layout.phtml
                  + views/scripts/
                                          + index/index.phtml
                                          + membre/membre.phtml
                   bootstrap
/public/     
                  index.php

la page index.phtml marche bien, donc le chemin de contrôleur a été bien défini, mais juste le lien qui ne marche pas.
Bizarre

Hors ligne

 

#5 14-10-2009 17:16:52

forst
Membre
Date d'inscription: 14-10-2009
Messages: 22

Re: Problème Lien vers controleur

et pour le serveur mutualisé, comment je ferai pour pointer le dossier public comme page de démarrage?

Dernière modification par forst (19-10-2009 19:10:37)

Hors ligne

 

#6 14-10-2009 19:21:14

openaccess
Membre
Date d'inscription: 12-10-2009
Messages: 16

Re: Problème Lien vers controleur

en fait dans ton url il ne doit pas te mettre "public"
Dans ton premier post tu donne cette url généré par Zend

http://xxxx/public/membres/index

or l'url devrait être:

http://xxxx/membres/index

A mon avis c'est un problème apache... Vérifie que:
1/ Ton .htaccess soit bien pris en compte...
2/ Le mod_rewrite d'apache soit activé

forst a écrit:

et pour le serveur mutualisé, comme je ferai pour pointer le dossier public comme page de démarrage?

Normalement dans un hébergement mutualisé on tu a un répertoire htdocs ou www... C'est ce répertoire qui sera ton rep public...
Ensuite ca dépend de l'hébergeur... Tous ne sont pas compatible avec Zend Framework

Hors ligne

 

#7 15-10-2009 16:17:14

forst
Membre
Date d'inscription: 14-10-2009
Messages: 22

Re: Problème Lien vers controleur

il s'agit bien le problème du mode url rewrite d 'apache et qu'il faut mettre le répertoire 'public' comme htdocs.
Mais en démarrant sur la page, la navigateur me demande  d'ouvrir ou enregistrer le fichier de démarrage ??? comme s il ne reconnait pas le type de fichier.
En plus

Code:

 <?php echo $this->baseUrl(); ?>

ne marche plus et donc les liens css et image ne fonctionne plus. J 'ai utilisé avec la balise base et l'helper . j'avoue en pas comprendre mea culpa sad

Hors ligne

 

#8 15-10-2009 17:50:41

openaccess
Membre
Date d'inscription: 12-10-2009
Messages: 16

Re: Problème Lien vers controleur

forst a écrit:

Mais en démarrant sur la page, la navigateur me demande  d'ouvrir ou enregistrer le fichier de démarrage ??? comme s il ne reconnait pas le type de fichier.

Si il te propose de télécharger le fichier c'est qu'il te manque cette ligne dans ta configuration d'apache:

Code:

AddType application/x-httpd-php .php

N'oublie pas de redémarrer apache après...

Hors ligne

 

#9 16-10-2009 05:30:30

forst
Membre
Date d'inscription: 14-10-2009
Messages: 22

Re: Problème Lien vers controleur

je suis toujours bloqué,c'est peut être du à la nouvelle version de bootstrap.
je mets les codes ci-dessus si je n'ai pas fait des erreurs
index.php du répéertoire public

Code:

  <?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'),
    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();
$application->run();

?>

application.ini

Code:

[production]

; Initilisation du report d'erreurs pour le mode production 
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0

; Libraire
includePaths.library = APPLICATION_PATH "/../library"

; Layout
resources.layout.layout = "layout"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"

; Bootstrap
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

; Front controller
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"

[staging : production]

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

Hors ligne

 

#10 20-10-2009 03:37:54

forst
Membre
Date d'inscription: 14-10-2009
Messages: 22

Re: Problème Lien vers controleur

grâce à Michael sur IRC , il m' a aidé à résolu le problème de redirection
enfin il s'agit le nom de chemin au nom trop caractère d'accentué
maus aussi avec virtualhost en local à mettre dans la configuration d'apache

Code:

  <VirtualHost *:80>
    ServerName fdev.dev
    DocumentRoot "D:/site/zend/html/public/"
    <Directory "D:/site/zend/html/public/">
             AllowOverride all
             
             Allow from all
    </Directory>
</VirtualHost>

et  la "baseurl" n'affichait pas la même chose entre local et sur l'hébergement mutualisé
code en local seulement à mettre '/' devrait le nom de fichier css,image

Code:

 
<base href="/" >
<link href="/styles/style.css" rel="stylesheet" type="text/css" />

chez l'hébergeur, parois on enlève le '/' d'ou mon cas chez Oxyd.
Par contre le problème de lien controleur ne marche toujours pas chez Oxyd.
parmi vous, étés vous héberger chez OXYD ?  sinon que pensez vous chez Oxyd ?

Dernière modification par forst (20-10-2009 03:38:08)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages