. */ declare(strict_types=1); namespace FireflyIII\Repositories\UserGroups\Journal; use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use Illuminate\Database\Eloquent\Builder as EloquentBuilder; use Illuminate\Support\Collection; /** * Class JournalRepository */ class JournalRepository implements JournalRepositoryInterface { use UserGroupTrait; public function searchJournalDescriptions(array $query, int $limit): Collection { $search = $this->userGroup->transactionJournals() ->orderBy('date', 'DESC') ; if (count($query) > 0) { // split query on spaces just in case: $search->where(function (EloquentBuilder $q) use ($query): void { foreach ($query as $line) { $parts = explode(' ', $line); foreach ($parts as $part) { $search = sprintf('%%%s%%', $part); $q->orWhereLike('description', $search); } } }); } return $search->take($limit)->get(); } }