| <?php |
|
|
| namespace Kanboard\Filter; |
|
|
| use Kanboard\Core\Filter\FilterInterface; |
| use Kanboard\Model\CommentModel; |
| use Kanboard\Model\TaskModel; |
| use PicoDb\Database; |
|
|
| |
| |
| |
| |
| |
| |
| class TaskCommentFilter extends BaseFilter implements FilterInterface |
| { |
| |
| |
| |
| |
| |
| |
| private $db; |
|
|
| |
| |
| |
| |
| |
| |
| public function getAttributes() |
| { |
| return array('comment'); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function setDatabase(Database $db) |
| { |
| $this->db = $db; |
| return $this; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| public function apply() |
| { |
| $this->query->inSubquery(TaskModel::TABLE.'.id', $this->getSubQuery()); |
|
|
| return $this; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| protected function getSubQuery() |
| { |
| return $this->db |
| ->table(CommentModel::TABLE) |
| ->columns(CommentModel::TABLE.'.task_id') |
| ->ilike(CommentModel::TABLE.'.comment', '%'.$this->value.'%'); |
| } |
| } |
|
|