title: Change not changed property in the Doctrine Event Listener
body: <p>When I'm trying to set new value inside Doctrine event listener for property that wasn't changed before, I've got an error by caused by <code>PreUpdateEventArgs::assertValidField</code>. it says that I'm not able to change property that didn't changed before event has fired.</p>
  
  <p>But what's the point of using doctrine lifecycle if I can't change anything I want to? What am I missing? Maybe there is another way to change value of the object instead of setNewValue method?</p>
  
  <p><strong>UPD</strong></p>
  
  <p>@joaoalves Ok, I'm gonna explain my problem more detail. I have Document A (not Entity since I'm working with MongoDB but it doesn't matter in this context), which has two properties: A::$foo and A::$bar. Both are Doctrine mapped filed with whatever type.</p>
  
  <p>When I change one of these fileds, preUpdate event is fired. For instance, I've changed $foo property. Now to modify it I must use <code>$event-&gt;setNewValue</code> as explained <a href="http://docs.doctrine-project.org/en/2.1/reference/events.html#preupdate" rel="nofollow">here</a>. Example:</p>
  
  <pre><code>public function preUpdate($event)
  {
      $A = $event-&gt;getDocument();
      $A-&gt;setFoo('new value'); // this WILL NOT WORK because we have to use setNewValue()
      $event-&gt;setNewValue('foo', 'new value'); // WORKS as expected.
  }
  </code></pre>
  
  <p>And here is my problem. Now If I want to modify A::$bar inside the preUpdate, I'll get an exception:</p>
  
  <p><code>Field "foo" is not a valid field of the document "A" in PreUpdateEventArgs</code></p>
  
  <p>This exception is thrown because <code>documentChangeSet</code> of the <code>PreUpdateEventArgs</code> contains no <code>bar</code>.</p>
  
  <p>How can I modify bar property then?</p>