Пользовательская нумерация страниц с содержанием / соединениями и условием - PullRequest
1 голос
/ 23 февраля 2011

Я пытаюсь разбить на страницы некоторые данные из модели, называемой D-фильтрацией результатов, на основе определенного условия из косвенно связанной модели. Мои модели выглядят так:

D-> C-> B-> A (где каждый -> принадлежит)

Я хочу разбить записи на записи D, где A.client =?

Возможно ли это с использованием сдерживаемых? Каков предпочтительный способ сделать это (использование содержимого из модели D привело к запросу для каждого разбитого на страницы элемента, который кажется неэффективным)?

1 Ответ

2 голосов
/ 23 февраля 2011

Да, использование Containable, вероятно, работает; например,

// function in AController

$this->paginate = array(
    'conditions' => array('A.client' => 'foo'),
    'contain' => array(
        'B' => array(
            'C' => array(
                'D'
            )
        )
    )
);

CakePHP объединит A к B, B к C и C к D. Я думаю, что это, вероятно, самый простой способ получить данные, которые находятся на расстоянии 4 моделей. Что касается неэффективности, вы можете использовать элемент sql_dump в сочетании с «объяснением плана», чтобы убедиться, что ваш запрос использует индексы надлежащим образом.

...