I am playing with cakephp 4. I have three table. This is belongsToMany Relation.
1. me_article
me_article.id,me_article.slug,me_article.title
'foreignKey' => 'me_category_id',
'targetForeignKey' => 'me_artcle_id',
2. me_category
me_category.id,me_category.name,me_category.slug
'foreignKey' => 'me_article_id',
'targetForeignKey' => 'me_category_id',
3. me_article_me_category (joinTable)
me_article_id,me_category_id
I get related articles for single category using this simple code :
$meCategory = $this->MeCategory->get($article->id,
[
'contain' => ['MeArticle'],
]);
The question is : How to paginate $meCategory?
I am doing this, and still getting error
$artikel = $this->MeArticle
->findBySlug($slug)
->contain(['MeCategory'])
->first();
$categoriesQuery = $this->MeArticle->MeCategory
->find()
->innerJoinWith('MeArtikel', function (\Cake\ORM\Query $query) use ($artikel) {
return $query->where([
'MeArticle.id' => $artikel->id,
]);
})
->group('MeCategory.id');
$paginationOptions = [
'limit' => 6,
'order' => [
'MeCategory.nama' => 'ASC'
]
];
$categories = $this->paginate($categoriesQuery, $paginationOptions);
The error :
Expression MeArticle.id is missing operator (IS, IS NOT) with null value