Cakephp пользовательский запрос нумерации страниц - PullRequest
0 голосов
/ 18 августа 2011

Я пытаюсь использовать пользовательский запрос в Cake, а затем разбить результаты на страницы с кодом ниже:

$query = $this->Petition->query($sql);

Я пытался:

$petitions = $this->paginate($query);

и это не работает. Есть ли способ, которым мы можем сделать это?

ОК. Я не был достаточно ясен: мне нужно использовать переменный массив, извлеченный из пользовательского запроса на нумерацию страниц, чтобы я мог использовать это для разбиения на страницы в представлении. Есть ли простой способ сделать это? Ниже мой код:

function index() {
        if ($this->Session->read('Auth.User.group_id') != 1) {
            $commune_id = $this->Session->read('Auth.User.commune_id');
            $commune_id = $this->Petition->Commune->findbyId($commune_id);
            $commune_id = $this->Petition->Commune->find('all',array('conditions' => array('group' => $commune_id['Commune']['group'])));
            $count = count($commune_id);
            $i=1;
            $sql = "SELECT * FROM `petitions` WHERE `commune_id` = ";
            foreach($commune_id as $commune_ids){
                if($i==1){
                $sql .= $commune_ids['Commune']['id'];
                }else{
                $sql .= " OR `commune_id` = ".$commune_ids['Commune']['id'];
                }
            /*if($i != $count){
            $this->paginate = array(
                'or' => array(
                    array('Petition.commune_id LIKE' => $commune_ids['Commune']['id'] . ","),
                    //array('Petition.commune_id LIKE' => "," . $commune_ids['Commune']['id'] . ",")
                    ),
                'limit' => 10
            );
            }*/
            $i++;
            }
            $query = $this->Petition->query($sql);
        }
        $this->Petition->recursive = 0;
        $petitions = $this->paginate();
        $this->set('petitions', $petitions);
    }

Ответы [ 2 ]

0 голосов
/ 18 августа 2011

Вы серьезно должны прочитать часть нумерации страниц в книге тортов:

function index() {
    $conditions = array();
    if ($this->Auth->user('group_id') != 1) {
        $commune_id = $this->Petition->Commune->findById($this->Auth->user('commune_id'));
       $conditions['Petition.id'] = $this->Petition->Commune->find('list',array(
            'fields'=>array('id','id')
            'conditions' => array('group' => $commune_id['Commune']['group'])
        ));
    }
    $this->Petition->recursive = 0;
    $petitions = $this->paginate('Petition',$conditions);
    $this->set('petitions', $petitions);
}

что-то в этом роде.

0 голосов
/ 18 августа 2011

это не так, как работает нумерация страниц вам нужно заполнить $ this-> validate с вашими условиями и т.д. а затем используйте $ this-> paginate () просто

см http://book.cakephp.org/view/1232/Controller-Setup

также обратите внимание на главу о пользовательской части запроса, если это действительно (!) Необходимо.

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