Как исключить записи из связанной модели в CakePHP? - PullRequest
5 голосов
/ 18 декабря 2008

Я создаю приложение Q & A в CakePHP, и я хочу исключить свои ассоциации в некоторых случаях. Представьте себе следующее:

Я перечисляю все вопросы на первой странице, используя $ this-> Question-> findAll () ;. Так как в моей модели есть следующая ассоциация:

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

Все ответы будут выбраны на начальной странице, что не является оптимальным. Как я могу сделать, чтобы исключить ответы в этом конкретном методе?

Спасибо

Ответы [ 2 ]

5 голосов
/ 18 декабря 2008

Я быстро смотрю на CakePHP API и обнаруживает, что у вас есть метод unbindModel в модели. Итак, в вашем примере вы можете сделать это:

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

Кроме того, вы можете использовать поведение Containable , чтобы выбрать только те части из MySQL, которые требуются для текущего просмотра страницы.

0 голосов
/ 18 декабря 2008

Если вы используете CakePHP 1.2, вам следует подумать о контейнере поведения. Подробнее см. http://cakebaker.42dh.com/2008/05/18/new-core-behavior-containable/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...