Bonjour,

Voila je rencontre un petit problème avec mon code. merci pour votre aide

Ce que je fais

Décrivez ici votre code ou ce que vous cherchez à faire

 $note = $number->select($number->func()->avg('Ratings.value'))->where(['Ratings.foreign_key'=>$user['id']]);
            debug($note);

Ce que je veux

directement le resultat la valeur de la note.

Ce que j'obtiens

'(help)' => 'This is a Query object, to get the results execute or iterate it.',
    'sql' => 'SELECT AVG( Ratings.value ) AS AVG(`Ratings__value`) FROM ratings Ratings WHERE Ratings.foreign_key = :c0',
    'params' => [
        ':c0' => [
            'value' => (int) 40,
            'type' => 'integer',
            'placeholder' => 'c0'
        ]
    ]

2 réponses


Bonsoir.
Il est normal que tu aies ce retour avec ce debug, étant donné que la requête SQL n'est pas encore exécutée.
Une requête SQL avec les conventions de CakePHP 3, doit ressembler à ceci :

$notes = $this->Notes->find()
// suite des déclarations de la requête ... 
    ->all(); // c'est à ce moment là que la requête SQL est exécutée
tincode
Auteur

j'avais déja fait ça sa me donne la même réponse


$this->loadModel("Ratings");
   $note = $this->Ratings->find('all',[
                'conditions'=>['Ratings.foreign_key'=>$user['id']],
                'fields' =>['AVG( Ratings.value )']
            ]);

jai juste envis de calculer la moyenne (note du user)

ça me retourne toujours ça

object(Cake\ORM\Query) {


    '(help)' => 'This is a Query object, to get the results execute or iterate it.',
    'sql' => 'SELECT AVG( Ratings.value ) AS AVG(`Ratings__value`) FROM ratings Ratings WHERE Ratings.foreign_key = :c0',
    'params' => [
        ':c0' => [
            'value' => (int) 40,
            'type' => 'integer',
            'placeholder' => 'c0'
        ]
    ],
    ``