Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'ai déjà pas mal développé avec Zend 2 mais je suis encore loin d'avoir un bon niveau :-).
Voici mon souci, je ne peux pas faire de requêtes. Dans mon contrôleur, quand je veux appeler ma fonction qui va me lister tous les éléments depuis une base de données, ma page view affiche une belle page blanche :-(. Je suis quasiment sûre de ne pas avoir fait d'erreur de config.
Mes logs d'erreurs affichent :
Call to a member function getSlideshow() on null in [...] HomeController.php
Je précise que je travaille en local et avec MAMP. Est-ce dernier l'origine de l'erreur ? comme si je ne pouvais pas accéder à ma base de données...
Je vous remercie pour votre aide.
Hors ligne
Bonjour
Tout d'abord quand j'ai vu ceci :
WikeC a écrit:
Voici mon souci, je ne peux pas faire de requêtes. Dans mon contrôleur, quand je veux appeler ma fonction qui va me lister tous les éléments depuis une base de données
On as déjà un premier soucis. Ou est ta couche modèle (accès a la base de donnée) ou service (comme tu l'entendra souvent dans la partie du forum zf2) ?
Tu dois avoir des contrôleur très lourd et juste une vue d'après ce que je comprends, du coup cela doit être compliqué pour t'y retrouver et as qu'elle partie revient la faute, controleur, modèle vue etc...
Le contrôleur doit gérer tout ce qui concerne les événement routes et dispatch et retourne une réponse à la vue (le contenu à afficher)
Les modèles gèrent tous les traitements, accès à la base de donnée, traitement logique s'il y a.
La vue affiche ce que le contrôleur lui donne.
Déjà avec cela tu pourrait mieux identifier ton soucis.
Ensuite ton erreur est simple, la variable sur laquelle tu fait getSlideshow vaut null, ce n'est pas un objet il ne peux pas y faire de getter. Tu devrait regarder comment cette variable est instancié, d'ou elle provient et pourquoi elle vaut null.
Ensuite montre nous le code incriminé.
Hors ligne
Bonjour JGreco,
merci d'avoir pris du temps pour me répondre.
Oui tu as raison, je me suis mal exprimé mais bien entendu j'avais préparé des couches modèles.
En fait mon souci s'est résolu car j'avais mal fait ma requête !
j'avais fait ceci:
$selectString = $sql->getSqlStringForSqlObject($select);
$result = $statement->execute();
$row = $result->current();
return $row;
Or d'après ce que je peux comprendre cela peut fonctionner avec une requête préparée:
$statement = $sql->prepareStatementForSqlObject($select);
$result = $statement->execute();
$row = $result->current();
return $row;
Je vais creuser ce problème pour mieux comprendre mes requêtes.
Hors ligne
Ok c'est déjà beaucoup mieux
Hors ligne