Нахожусь в категории с отображением товаров…
основные настройки пагинатора:
var $paginate = array(
'Product' => array(
'limit' => 10,
'order' => array(
'Product.instock' => 'desc',
'Product.title' => 'asc',
),
)
);
дальше функия вывода:
function index($id = 0) {
…
$conditions = array('Product.category_id' => $id); // берем продукты из этой категории
…
// тут обработка сортировки и фильтра, вроде все нром
…
$this->paginate['Product']['conditions'] = $conditions; // в conditions нахерачили сортировку
$this->paginate['Product']['contain']['ProductsProperty']['conditions']['OR'] = $contain_conditions; // сюда впихнул фильтр по свойствам товара
$products = $this->paginate('Product'); // а вот тут начинается пиздец
во-первых, вот так $this->paginate() не пашет, ну я думаю, из-за того, что мы внутри категории.
во-вторых, фильтр убивает не товар, не подошедший по параметрам, а только его свойства, то есть до фильтра структура такая:
Array
(
[0] => Array
(
[Product] => Array
(
[id] => 42
…
)
[ProductsProperty] => Array
(
[0] => Array
(
[id] => 27
…
)
)
)
[1] => Array
(
[Product] => Array ( … )
[ProductsProperty] => Array ( … )
а после фильтра все теже товары, но:
Array
(
[0] => Array
(
[Product] => Array
(
[id] => 42
…
)
[ProductsProperty] => Array
(
)
)
[1] => Array
(
[Product] => Array ( … )
[ProductsProperty] => Array ()
кароч, свойства "отфильтрованных" товаров пустые, а сами товары на месте -_-
вот так выглядит $this->paginate с фильтром:
Array
(
[Product] => Array
(
[limit] => 12
[order] => Array
(
[Product.instock] => desc
[Product.title] => asc
)
[conditions] => Array
(
[Product.category_id] => 1
)
[contain] => Array
(
[ProductsProperty] => Array
(
[conditions] => Array
(
[OR] => Array
(
[1] => Array
(
[property_id] => 1
[value] => газовый
)
[3] => Array
(
[property_id] => 3
[value BETWEEN ? AND ?] => Array
(
[0] => 1
[1] => 2
)
)
)
)
)
)
)
)
если ниче не понятно, вот тут код функции (закомментил, что не относится к делу).
единственный спец по кейку, которого я знаю, занят каким-то переездом в общаге -_-
в документации и на форумах у всех все ахуенно, что уебать их хочется))