[Symfony2]Envoie de valeur Controller/view

Eléphanteau du PHP | 25 Messages

05 mars 2012, 21:05

Bonsoir,

Désolé d'encore vous embetter avec symfony2.

Un petit problème se dresse devant moi. Je sais que ma question va parraitre bête.

Problème 1:

Dans mon controller j'ai:
// Requete pour compter le nombre de livre que l'élève est cencé avoir en sa possession.
        $qCount=$this->getDoctrine()->getEntityManager()->createQuery("SELECT COUNT(b.livreIdlivre) FROM LGBBourseLivresBundle:EleveHasLivre b WHERE b.eleveIdeleve=43");
        $resultCount=$qCount->getSingleScalarResult();// On récupère le nombre du COUNT
Et j'aimerais envoyé le $resultCount a ma view.

Problème 2 (un peu le même je pense):

Dans mon controller j'ai:
$montant=$montant-$prixRepriseLivre[$cpt];
Et j'aimerais envoyé $montant a ma view.

Paradoxalement, j'arrive a envoyé des resultats de Doctrine mais pas des betes nombres...

Merci d'avance de vos réponses.

Bonne soirée.

ViPHP
xTG
ViPHP | 7331 Messages

05 mars 2012, 21:23

A priori c'est dans la première partie de cette page de doc : http://symfony.com/doc/2.0/quick_tour/t ... oller.html

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

06 mars 2012, 00:04

Tout dépend de comment tu gères ton templating.

1/ si tu utilises les annotations, la solution de xTG

2/ sinon, de cette manière :
class MonController extends Controller
{
  public funcion monAction()
  {
    // ...

    return $this->render('MonBundle:Mon:template.html.twig', array('resultCount' => $resultCount));
  }
}
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 25 Messages

06 mars 2012, 15:15

Bonjour,

J'ai donc lu la doc que m'a fournit xTG. Seulement je travaille en yml et non en xml.

J'ai éssayé d'implémenter ceci:
return $this->container->get('templating')->renderResponse('LGBBourseLivresBundle:Rachat:avoir.html.twig', array('Eleve'=> $eleve , 'Titre'=>$titreLivre ,
                                                                                                                         'codeEan'=>$codeEanLivre, 'prixReprise'=>$prixRepriseLivre, 
                                                                                                                         'discipline'=>$disciplineLivre, 'InfoParent'=>$resultAdresse,
                                                                                                                         'Classe'=>$resultClasse, 'NbrLivre'=>$resultCount));
Dans ma view je fais:
<p>Reprise de <NbrLivre>{{ resultCount }}</NbrLivre> Livres.</p>
Resultat:

Variable "resultCount" does not exist in LGBBourseLivresBundle:Rachat:avoir.html.twig at line 103

Bizarre... J'ai pourtant vérifié/ copié-coller etc... ça ne vient pas d'une faute de frappe... Pourtant cette variable existe bien vue que je l'utilise aussi de mon controller comme valeur max de mon compteur... La sur ce coup trou noire totale.

j'ai éssayé de faire dans ma view une boucle for a savoir:
{% for resultCount in NbrLivre %}
       {{ resultCount }}
{% endfor %}
Resultat : Rien! Nada ! Niete ! (je vais pas faire toute les langues hein.)

j'ai bien ma phrase mais pas de chiffre... Pas cool ça.


On oublie tout faut jusque que j'ouvre un peu les yeux aulieu d'avoir 2 pots de yaourts devant:

Solution :

La variable dans la vue s'appelle {{ NbrLivre }} et non {{ resultCount }} habitude des requêtes?

Bref j'ai résolu mon soucis désolé de vous avoir embêter encore une fois avec ^^'.

Bonne journée.

Ps: Y a t-il une méthode pour recupéré la date courante?