Для приложения для электронной коммерции, которое я создаю, я использую 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)
, но я не могу использовать встроенный paginator из cakePHP с результирующим массивом.
Может кто-нибудь сказать мне, как правильно сформулировать $options['joins']
массив для передачи в функцию paginate для получения того же результата, но с разбивкой по страницам?
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 )