diff --git a/lib/classes/SimpleORMap.php b/lib/classes/SimpleORMap.php index d2cbcdca16652bdd22bebc2d50884fc20fd7d33f..f3993c2706e971e11f6d7fec511f99e52f92b121 100644 --- a/lib/classes/SimpleORMap.php +++ b/lib/classes/SimpleORMap.php @@ -2233,6 +2233,14 @@ class SimpleORMap implements ArrayAccess, Countable, IteratorAggregate if ($this->content[$field] === null || $this->content_db[$field] === null) { return $this->content[$field] !== $this->content_db[$field]; } else if ($this->content[$field] instanceof I18NString || $this->content_db[$field] instanceof I18NString) { + // Trigger loading of translations + if ($this->content[$field] instanceof I18NString) { + $this->content[$field]->toArray(); + } + if ($this->content_db[$field] instanceof I18NString) { + $this->content_db[$field]->toArray(); + } + return $this->content[$field] != $this->content_db[$field]; } else { return (string)$this->content[$field] !== (string)$this->content_db[$field]; diff --git a/tests/unit/lib/classes/SimpleOrMapNodbTest.php b/tests/unit/lib/classes/SimpleOrMapNodbTest.php index 3ede1aa8e0ab7fd004a7f51373d207a7bcea7b90..9fa1eed3f62a2a68a468174222d5675217323654 100644 --- a/tests/unit/lib/classes/SimpleOrMapNodbTest.php +++ b/tests/unit/lib/classes/SimpleOrMapNodbTest.php @@ -25,8 +25,6 @@ class auth_user_md5 extends SimpleORMap $config['serialized_fields']['jsondata'] = 'JSONArrayObject'; $config['notification_map']['after_store'] = 'auth_user_md5DidCreateOrUpdate'; - $config['i18n_fields'] = ['i18n_field']; - parent::configure($config); } @@ -366,7 +364,14 @@ class SimpleOrMapNodbTest extends \Codeception\Test\Unit self::setupFixture(); $result = [ - 'definition as list' => [new auth_user_md5()], + 'definition as list' => [new class extends SimpleORMap { + protected static function configure($config = []) + { + $config['db_table'] = 'auth_user_md5'; + $config['i18n_fields'] = ['i18n_field']; + parent::configure($config); + } + }], 'definition as associative array' => [new class extends SimpleORMap { protected static function configure($config = []) {