2008-12-18 6 views
5

Je crée un Q & Une application dans CakePHP, et je veux exclure mes associations dans certains cas. Imaginez ce qui suit:Comment exclure des enregistrements d'un modèle associé dans CakePHP?

Je liste toutes les questions sur la première page en utilisant $ this-> Question-> findAll() ;. Depuis que j'ai l'association suivante dans mon modèle:

public $hasMany = array('Answer' => 
     array('className' => 'Answer', 
      'order' => 'Answer.created DESC', 
      'foreignKey' => 'post_id', 
      'dependent' => true, 
      'exclusive' => false, 
     ) 
    ); 

Toutes les réponses seront sélectionnées sur la page d'accueil, ce qui n'est pas optimal. Comment pourrais-je faire pour exclure les réponses dans cette méthode particulière?

Merci

Répondre

5

Je rapide coup d'oeil à la CakePHP API révèle que vous avez une méthode unbindModel sur le modèle. Donc, vous par exemple que vous pouvez faire ceci:

$this->Question->unBindModel(array('hasMany' => array(’Answer’))) 

Vous pouvez également utiliser le comportement Containable seulement sélectionner les morceaux de MySQL que vous avez besoin pour la vue de la page courante.