db = $db; return $this; } /** * Apply filter * * @access public * @return FilterInterface */ public function apply() { $task_ids = $this->getTaskIdsWithGivenComment(); if (empty($task_ids)) { $task_ids = array(-1); } $this->query->in(TaskModel::TABLE.'.id', $task_ids); return $this; } /** * Get task ids having this comment * * @access public * @return array */ protected function getTaskIdsWithGivenComment() { return $this->db ->table(CommentModel::TABLE) ->ilike(CommentModel::TABLE.'.comment', '%'.$this->value.'%') ->findAllByColumn(CommentModel::TABLE.'.task_id'); } }