Wywołanie findera
public function tags(...$tags) { $articles = $this->Articles->find('tagged', tags: $tags)->all(); }
Utworzenie findera
use Cake\ORM\Query\SelectQuery; public function findTagged(SelectQuery $query, array $tags = []): SelectQuery { $columns = [ 'Articles.id', 'Articles.user_id', 'Articles.title', 'Articles.body', 'Articles.published', 'Articles.created', 'Articles.slug', ]; $query = $query ->select($columns) ->distinct($columns); if (empty($tags)) { // Artykuły bez tagów $query->leftJoinWith('Tags') ->where(['Tags.title IS' => null]); } else { // Artykuły, których tagi pasują $query->innerJoinWith('Tags') ->where(['Tags.title IN' => $tags]); } return $query->groupBy(['Articles.id']); }