Bonsoir, je sui confronté à un petit problème dans cakephp.

Je souhaite afficher le nombre de chansons présentes sur un album.
Les deux actions font partie du même contrôlleur.
J'ai essayé d'utiliser les requestAction mais j'ai un problème que je n'arrive pas à interpréter.

Controller action can only return an instance of Response

Ma vue

<ul class="items-list">
    <?php foreach ($artistes as $key => $artiste): ?>

<?php echo $this->requestAction(['controller'=>'Songs','action'=>'countAlbums',['pass'=>['artiste'=>$artiste->artiste]]]);?>

    <?php endforeach ?>
</ul>

Mon controlleur

public function artistes()
    {
        $artistes = $this->Songs->find('all',array('group'=>'artiste', 'fields' => array('artiste','slug_artiste')));

        $this->set('artistes',$artistes);
    }
public function countAlbums($artiste){
        $count = $this->Songs->find('all',array(
            'group'=>'album', 'conditions'=>['artiste'=>$artiste]))->count();

        return $count;
    }

Un grand merci à ceux qui essayeront de m'aider.

2 réponses


Natà
Auteur
Réponse acceptée

Oui, pardon, cakephp 3.
Oui, j'ai vu les cells mais j'en suis encore à apprendre les bases et j'ai trouvé ça assez compliqué.

Mais c'est bon en fait, j'ai trouvé ce qui n'allait pas...
Il fallais simplement encoder la réponse avec

$this->response->body(json_encode($count));

Désolé pour le dérangement et merci d'avoir pris le temps d'essayer de m'aider. :)

Version de Cake ? Cakephp 3 --> Regarde du coté des cell