tags:

views:

170

answers:

2

I'm creating a Q&A application in CakePHP, and I want to exclude my associations in some cases. Imagine the following:

I'm listing all questions on the first page using $this->Question->findAll();. Since I have the following association in my model:

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

All answers will get selected at the start page, which is not optimal. How could i do to exclude the answers in this particular method?

Thanks

+2  A: 

Hi, I quick look at the CakePHP API reveals that you've got an unbindModel method on the Model. So in you example you can do this:

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

Alternatively, you can use the Containable behaviour to only select the pieces from MySQL that you require for the current page view.

duckyflip
A: 

If you are using CakePHP 1.2 you should think about Containable Behaviour. See http://cakebaker.42dh.com/2008/05/18/new-core-behavior-containable/ for details