Cakephp нумерация с или условие - PullRequest
0 голосов
/ 21 августа 2011

Я хочу иметь возможность поставить условие 'или' внутри цикла foreach при определении переменной разбиения на страницы в контроллере, как показано ниже:

foreach($p as $ps){
$this->paginate = array(
                'or' => array(
                    array('Petition.commune_id LIKE' => $commune_ids['Commune']['id'] . ","),

                    ),Recipe
                'limit' => 10
            );

}

Я знаю, что выше неправильно, но я скомпилировал коды длядемонстрационные цели.Есть ли способ, которым мы можем сделать это в торт?

Мне нужно зациклить, потому что я хочу иметь возможность использовать идентификаторы из другой таблицы (которая была выбрана в виде массива методом find) и использовать это для зацикливанияв текущей таблице, которая является таблицей петиций.$ commune_ids ['Commune'] ['id'] - это то, что мне нужно перебрать как или значение.В качестве альтернативы запрос будет выглядеть так:

SELECT * FROM petitions WHERE commune_id = 971 OR commune_id = 123 OR commune_id = 321 OR commune_id = 432 

, но, конечно, я могу сделать это в функции поиска, но я бы хотел разбить на страницы эти результаты ...

1 Ответ

1 голос
/ 21 августа 2011

То, что вы хотите, это запрос:

SELECT * FROM petitions WHERE commune_id IN (971, 123, ...)

В Cake это:

'conditions' => array(
    'Petition.commune_id' => array(971, 123, ...)
)

Итак, вы создаете массив идентификаторов, которые вы можете поместить в условие. Готово.

$communeIds = /* assemble array somehow */;

$this->paginate = array(
    'conditions' => array(
        'Petition.commune_id' => $communeIds
    ),
    'limit' => 10
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...