Mysql
 sql >> Database >  >> RDS >> Mysql

Cakephp - contiene (comportamento contenibile) recupera troppo

I tuoi modelli non sembrano agire in modo contenitivo. Hai impostato i tuoi modelli in modo che agiscano come contenibili?

class Post extends AppModel {
    public $actsAs = array('Containable');
}

Se è così, forse il problema è con la ricorsione (per evitare di ottenere il Group array con la query). Il comportamento contenibile dovrebbe gestire il livello di ricorsione da solo, ma prova a impostarlo su AppModel solo per essere sicuro

class AppModel extends Model {
    public $actsAs = array('Containable');
    public $recursive = -1;

Il tuo primo tentativo

    'contain'       => array(
        'User'          => array(
            'fields' => array('id', 'fullName')
        ),
    )

sembra buono in termini di sintassi, quindi probabilmente è actAs cosa.

Inoltre, anche per il debug, prova

$this->Membership->contain('User');
$this->Membership->find('all', array(
    'conditions'    => array(
            'group_id'      => $id
        ));

e vedi se in questo modo ottieni i risultati attesi.