Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 04-09-2014 12:31:12

DDUC
Membre
Date d'inscription: 18-07-2014
Messages: 18

Inaccessibilité des images au niveau d'une vues.

Bonjour à tous!
Cela fait déjà 3 mois que j'ai débuté avec zend framework 2 (2.2.3) et je suis en stage.
Par rapport à mon problème , j'ai eu à voir certain post mais qui m'éclairaient pas. Voici mon problème:

Selon la tâche qui m'a été remise, sur ma première page je faisais plutôt des injections avec Ajax, voila que en créant un nouveau module "Profils" ou je n'utilise pas d'injections ( doc pas besoin de setTerminal(true)), à la création de ma deuxième page "mes comptes bancaires"; celui ci n'affiche pas les image ou disant qu'il n'accède pas au dossier publique. Lorsque je remplace l'action par défaut par l'action devant appelé ma page, les images s'affiche; Lorsue j'écrie une balise <img comme suite: " <img src="<?php echo $this->basepath(); ?>/img/ebanking_img_3.png">; là aussi les images s'affiches. Donc impossible pour moi de référencer les image relativement.

Voici ma route:

Code:

'Site' => array (
    'type' => 'Segment',
    'options' => array (
            //
            'route' => '/site[/:action]',
            'constraints' => array (
            ),
            'defaults' => array (
                    //
                    '__NAMESPACE__' => 'Front\Controller',
                    'controller' => 'Profils',
                    'action' => 'index'
            )
    )
),

Voici mon action:

Code:

public function mesComptesAction(){
try {
    $session = new SessionContainer('user');
    $reader = new readerXML();
    $data = $reader->fromFile('config/configsXML.xml');
    $config = new Configs();
    $config->exchangeArray($data);
    
    if($session->offsetExists('userId')) {
        
        $personne = $this->getPersonneTable()->getPersonne($session->userId);
        $comptes = $this->getComptesTable()->getMesComptes($personne->id);


        $view = new ViewModel(array(
                '$personne' => $personne,
                'comptes' => $comptes
        ));

        $enteteView = new ViewModel(array(
                'personne' => $personne
        ));
        $enteteView->setTemplate('layout/entete-site');
        
        $view->addChild($enteteView,"entete_site");
        return $view;
    }
    else {
        unset($_SESSION['user']);
        $this->redirect()->toRoute('home');
    }
} catch(\Exception $ex){
    // Erreur 404
}
}

et voici ma vue:

Code:

<?php
    $this->headtitle('Mes comptes');
?>
<?php if(isset($this->entete_site)) : ?>
    <?php echo $this->entete_site; ?>
    <div id="pagebody">
        <div class="content">
            <div id="bloc-left">
                <div id="main-menu">
                    <a href="<?php echo $this->url('Site'); ?>">Accueil</a>
                    <a href="<?php echo $this->url('Site',array('action' => 'mesComptes')); ?>" class="actif">Mes comptes bancaires</a>
                </div>
                <hr class="trait" />
            </div>
            <div id="bloc-center">
                <div id="titrebody"><h1>Mes comptes</h1></div>
                <div>
                    <label style="position: relative; bottom:10px;">Compte courant</label>
                    <div class="interogation">
                        <div>Veuillez choisir un de vos comptes bancaires<span></span></div>
                    </div>
                    <select name="comptecourant" id ="comptecourant">
                    <option value="" selected="selected">Choisir un compte</option>
                    <?php
                        $comptes = $this->comptes;
                        
                        foreach ($comptes AS $row) {
                            echo '<option value='.$row->id.'>'.$row->numero.'</option>';
                        }
                    ?>
                    </select>
                    
                </div>
                <hr class="trait" />
                
                <div id="detailscompte" style="display: none;">
                    
                </div>
            </div>
            <!-- Début bloc droit -->
            <div id="bloc-right">
                <h1>Publicité</h1>
            </div>
        </div>
    </div>
 <?php endif; ?>

Vraiment! Je ne sais pas d’où viens le problème, c'est la première fois que je le rencontre! Merci pour vos réponses.
Cordialement.

Hors ligne

 

#2 04-09-2014 17:05:07

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Inaccessibilité des images au niveau d'une vues.

Salut, honnêtement j'ai absolument rien compris à ton problème ... Peux-tu faire un effort sur ta syntaxe ? smile

Hors ligne

 

#3 05-09-2014 09:39:34

DDUC
Membre
Date d'inscription: 18-07-2014
Messages: 18

Re: Inaccessibilité des images au niveau d'une vues.

Désolé si je n'arrive pas à bien m'expliquer c'est que les forums c nouveau pour moi.
ok, j'ai un controller Profils, son action par défaut est index. Lors de l'appel de la view index. les images sont charger et je peut les voir. Mais si j'appelle une une autre action du même controller; ben la plus rien, tous les mages ne s'affiche pas. sans oublier que j'appelle ces action depuis la même route. Il faut aussi noter que ci je remplace l'action par défaut de la route par celle que je veux appeler, alors là les images s'affiche.

Je ne sais pas si j'ai bien expliqué mon problème cette fois ci, j'ai fait de mon mieux.  smile

Hors ligne

 

#4 05-09-2014 10:32:25

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Inaccessibilité des images au niveau d'une vues.

A partir du moment où t'es dans une vue et que les images sont stockées dans le dossier public tu peux y accéder sans soucis. Donc tu ne devrais pas avoir ce problème.

Tu peux tester un truc du genre <?php echo $this->basePath('tonurl'); ?>

Hors ligne

 

#5 05-09-2014 10:54:08

DDUC
Membre
Date d'inscription: 18-07-2014
Messages: 18

Re: Inaccessibilité des images au niveau d'une vues.

Effectivement avec cela sa marche sauf que j'utilise un tableau Database et celui à pour feuille de style celui de jquery ui. Je n'ai pas de moyens pour réécrire les liens des styles. Ce pendant, lorsque mon action est mis par défaut dans la route, mon tableau ainsi que mes images s'affiche bien. Franchement je ne sais pas le pourquoi du problème. A mon vis, je pense avoir tous respecter.

Je viens de créer une nouvelle route juste pour cette page afin que son action soit l'action par défaut et la sa marche. smile

J'aimerai bien comprendre le pourquoi de ce problème sad

Hors ligne

 

#6 05-09-2014 11:38:25

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Inaccessibilité des images au niveau d'une vues.

Ca n'a pas de rapport avec l'action par défaut ou non. Et j'ai énormément de mal à comprendre ce que tu dis. Donc fais un effort là dessus parce que sans ça je vais pas pouvoir t'aider ...

Hors ligne

 

#7 05-09-2014 11:59:37

DDUC
Membre
Date d'inscription: 18-07-2014
Messages: 18

Re: Inaccessibilité des images au niveau d'une vues.

Effectivement, c'est pas facile car cela m'est incompréhensible à moi même. En tous cas lorsque que j'ouvre cette page avec un inspecteur de code et que je clique sur le lien de l'image, il me renvoie une page 404 au lieu de l'image.
en tout cas j'avance d'abord et je continue à chercher smile

Hors ligne

 

#8 05-09-2014 14:35:17

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Inaccessibilité des images au niveau d'une vues.

Si l'image s'affichait tu n'aurais pas de 404 wink. Regardes le chemin de l'image voir si il est bon déjà !

Hors ligne

 

#9 05-09-2014 15:41:20

DDUC
Membre
Date d'inscription: 18-07-2014
Messages: 18

Re: Inaccessibilité des images au niveau d'une vues.

voici le lien afficher pour le cas de l'erreur img/img_site_name.png. Ce qui est étonnant c'est que c'est le même liens que pour les autres pages qui marchent.
Mais si je met un truc du genre <?php echo $this->basePath(); ?> avant le lien, l'image s'affiche. je me demande si le fichier .htaccess n'est pas à l'origine de cela. Certe je m'y connais pas en htaccess mais cette ligne m'intrigue : RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]

Hors ligne

 

#10 05-09-2014 16:32:32

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Inaccessibilité des images au niveau d'une vues.

Ca vient pas du fichier .htaccess puisque ça fonctionne dans certains cas. Tu as fait un virtualhost déjà ? Le chemin complet de l'image ça serait plus simple wink.

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