setTable('posts'); $this->belongsTo('PaginatorAuthor', [ 'foreignKey' => 'author_id', ]); } /** * Finder method for find('popular'); */ public function findPopular(SelectQuery $query): Select { $field = $this->getAlias() . '.' . $this->getPrimaryKey(); $query->where([$field . ' >' => '1']); return $query; } /** * Finder for published posts. */ public function findPublished(SelectQuery $query): SelectQuery { $query->where(['published' => 'Y']); return $query; } /** * Custom finder, used with fixture data to ensure Paginator is sending options */ public function findAuthor(SelectQuery $query, ?int $authorId = null): SelectQuery { if ($authorId) { $query->where(['PaginatorPosts.author_id' => $authorId]); } return $query; } }