내가 이루고자하는 목표는 꽤 간단하지만 올바른 방법을 찾아 낼 수는 없다.CakePHP 3 결과 페이지 매기기
내 데이터베이스에 Products 테이블이 있습니다. 각 제품에는 많은 이미지 및 색상이 있으며 하나 이상의 카테고리에 속합니다.
카테고리의 ID를 받고 액션이 포함 된 제품을 반환하는 작업을 만들려고합니다.
이 변수$paginatorQuery
가 제대로 필터링하지 않습니다
$paginatorQuery = $this->Categories->Products->find('all', [
'contain' => [
'Categories' => [
'conditions' => [
'category_id' => $categoryId
]
],
'Colors',
'Images'
],
'conditions' => $conditionArray,
'order' => [
$session->read('productSort.field') => $session->read('productSort.direction')
],
]);
$catProd = $this->Categories->get($categoryId, [
'contain' => [
'Products' => [
'Colors',
'Images',
'conditions' => $conditionArray,
'sort' => [
$session->read('productSort.field') => $session->read('productSort.direction')
],
]
],
]);
// $catProd = $catProd->products;
$products = $this->paginate($paginatorQuery);
(I가이 것 때문이 아니라 방법을 알고 :
이 내 코드는 내가 해봤 두 가지 다른 방법으로, 지금 모습입니다 논리적이지만, 다만 그것을 시도하기로 결심했다면, 예상되는 것 (기존의 모든 제품, 해당 제품이 해당 ID가있는 카테고리에 속한 경우 제품에 포함되어 있음)을 반환합니다.
주석 달린 줄 $catProd = $catProd->products
은 변수 $catProd
에 원하는 결과 집합을 할당하지만 그 번호를 매길 수는 없습니다. 한계를 지정하고 수동으로 페이지 매김을 구현하는 방법을 생각 중이지만 문제가되는 부분을 놓치고있는 뭔가가 있어야한다고 생각합니다.
감사합니다.
고마워요, 그 속임수를했습니다. 만약 내가 정확하게 기억한다면, 나는 이전에 일치를 사용하려했지만 use 문을 놓쳤다. 그래서'$ categoryId'가 정의되지 않았다. – porjolovsky