Для приложения электронной коммерции, которое я создаю, я использую CakePHP. Я создал базу данных, а затем испек свое приложение с помощью cake bake
. Все мои модели правильно связаны следующим образом:
Product hasMany CategoryProduct,ImagesProduct
Category hasMany CategoryProduct
CategoryProduct belongsTo Product,Category
Image hasMany ImagesProduct
ImagesProduct belongsTo Product,Image
Я пытался разными способами получить разбивку на страницы продуктов, зависящих от category_id, но безуспешно. Мне удалось получить массив, который я хотел, с помощью $this->CategoryProducts->findByCategoryId($id)
, но я не могу использовать встроенный пагинатор CakePHP с результирующим массивом.
Может ли кто-нибудь сказать мне, как правильно сформулировать массив $options['joins']
для передачи функции разбиения на страницы, чтобы получить тот же результат, но с разбиением на страницы?
SQL для того, что я хочу сделать, будет примерно таким:
SELECT p . * , i.filename
FROM products p
LEFT JOIN (
category_products cp, categories c, images_products ip, images i
) ON ( cp.product_id = p.id
AND c.id = cp.category_id
AND c.id =2
AND ip.product_id = p.id
AND ip.image_id = i.id )