Problème de récupération d'objet action AJAX
Bonsoir à tous
Voici mon problème :
Au clic sur un lien je lance une requête AJAX (via jQuery load) pour recharger un élément DOM (jusqu'à là tout va bien).
L'action symfony appelé doit mettre à jour l'enregistrement de la table relié au module, insérer un enregistrement dans une autre table et enfin récupérer les informations nécessaires pour l'affichage dans la vue associé.
Voici la fonction de mon fichier action :
Code:
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
|
public function executeEncherir(sfWebRequest $request)
{
//CONTROLE CONNEXION
if($this->getUser()->isAuthenticated()){
//RECUP INFO CLIENT
$this->client = Doctrine::getTable('Client')->find(array($this->getUser()->getAttribute('id')));
//CONTROLE CREDIT
if($this->client->getCredit()>0){
//RECUP INFO ENCHERE
$this->enchere_clic = Doctrine_Query::create()
->from('EnchereClic c')
->leftJoin('c.EnchereCout o')
->leftJoin('c.EnchereDuree p')
->where('c.id = ?',$request->getParameter('id'))
->execute();
//CREATION HISTORIQUE
$this->enchereClicHisto=new enchereClicHisto();
$this->enchereClicHisto->setClientId($this->getUser()->getAttribute('id'));
$this->enchereClicHisto->setEnchereClicId($request->getParameter('id'));
$this->enchereClicHisto->setNbCredit($this->enchere_clic->EnchereCout->getCout());
$this->enchereClicHisto->save();
//MAJ DT FIN ENCHERE
$dtFin=$this->enchere_clic->getDtFin();
$dtFin=str_replace('-',':',$dtFin);
$dtFin=strtotime($dtFin);
$dtFin = date("Y-m-d h:i:s",$dtFin+$this->enchere_clic->EnchereDuree->getDuree());
$this->enchere_clic->setDtFin($dtFin);
$this->enchere_clic->save();
//RECUP PRIX
$this->enchere_clic2 = Doctrine_Query::create()
->select('COUNT(c.id) as prix')
->from('EnchereClicHisto c')
->where('c.enchere_clic_id = ?',$request->getParameter('id'))
->execute();
}else{
//TODO l'UTILISATEUR N'A PLUS DE CREDIT
}
}else{
//TODO L'UTILISATEUR DOIT SE CONNECTEZ OU SINSCRIRE
}
} |
Le problème c'est que j'ai cette erreur qui s'affiche lors de la recupération des valeur dans mes tables liés (left join) :
Code:
Fatal error: Call to undefined method Doctrine_Collection::getCout() in /home/sfproject/bigenchere/apps/frontend/modules/enchereclic/actions/actions.class.php on line 88
Je pense que ma méthode de récupération de l'élément "enchère_clic" n'est pas la bonne (car ma requête me semble valide).
Est t'il possible de récupérer des enregistrement en utilisant un objet ( ex : $this->enchereClic=new enchereClic() ) plutôt qu'une requête doctrine si oui comment faire pour utiliser cette méthode ??
Peut être que je devrais créer une/des fonction(s) dans le(s) modèle(s) ??
je suis débutant en symfony et certaine notions du MVC sont encore un peu flou à mes yeux.
Merci d'avance