diff --git a/app/Factory/TransactionJournalMetaFactory.php b/app/Factory/TransactionJournalMetaFactory.php index 44d4990abf..5cd8a91a25 100644 --- a/app/Factory/TransactionJournalMetaFactory.php +++ b/app/Factory/TransactionJournalMetaFactory.php @@ -56,6 +56,16 @@ class TransactionJournalMetaFactory if ($data['data'] instanceof Carbon) { $value = $data['data']->toW3cString(); } + if (strlen($value) === 0) { + // don't store blank strings. + try { + $entry->delete(); + } catch (Exception $e) { // @codeCoverageIgnore + Log::error(sprintf('Could not delete transaction journal meta: %s', $e->getMessage())); // @codeCoverageIgnore + } + + return null; + } if (null === $entry) { diff --git a/app/Repositories/Journal/JournalRepository.php b/app/Repositories/Journal/JournalRepository.php index d46576e4b7..3eca0906eb 100644 --- a/app/Repositories/Journal/JournalRepository.php +++ b/app/Repositories/Journal/JournalRepository.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Repositories\Journal; use Carbon\Carbon; +use Exception; use FireflyIII\Factory\TransactionJournalFactory; use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; @@ -376,6 +377,9 @@ class JournalRepository implements JournalRepositoryInterface */ public function getMetaField(TransactionJournal $journal, string $field): ?string { + $class = new \stdClass; + $class->value = 'hi there'; + $value = null; $cache = new CacheProperties; $cache->addProperty('journal-meta'); @@ -394,7 +398,18 @@ class JournalRepository implements JournalRepositoryInterface $value = $entry->data; $cache->store($value); - return $value; + if (is_array($value)) { + return join(',', $value); + } + try { + $return = strval($value); + } catch (Exception $e) { + Log::error($e->getMessage()); + + return ''; + } + + return $return; } /**