Bug \XF\Mvc\Entity\Entity::saveIfChanged does not reset _writePending

There is a bug in this version
D

DragonByte Tech

Guest
Problem: If you call $entity->preSave(), \XF\Mvc\Entity\Entity::$_writePending is set to true. If you subsequently call $entity->saveIfChanged(), and no changes are detected, you cannot write to the entity later, unless you manually call $entity->reset().

Proof of concept:
PHP:

Code:
$user = \XF::em()->find(\XF\Entity\User::class, 1);
$user->username = 'Admin'; // Set this to whatever the user name of userId 1 is

if (!$user->preSave())
{
    throw...

Read more

Continue reading...