<p dir="auto">I'm trying to use form with $clearMissing = false but form never returns true to isValid().<br>
This because on line <a href="https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Form/Form.php#L541">https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Form/Form.php#L541</a> we submit child when the values passed are to the form or when $clearMissing == true.</p>
<p dir="auto">This way every child fails in the validation stage here: <a href="https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Form/Form.php#L705">https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Form/Form.php#L705</a> so the main form is never valid.</p>
<p dir="auto">While trying out the new form PATCH feature, I ran into a bug:</p>
<p dir="auto">Say for instance you have a form with two children: firstName, lastName,</p>
<p dir="auto">and you PATCH with this data: <code class="notranslate">array('firstName' =&gt; 'Hank')</code></p>
<p dir="auto">now the "submit" method is never called on the child "lastName". Now there's a problem, because Form::isValid() only returns <code class="notranslate">true</code> if <code class="notranslate">$this-&gt;submitted</code> is <code class="notranslate">true</code>. However, this is <code class="notranslate">false</code> for the "lastName" child. A form with children, in turn, will only return <code class="notranslate">true</code>, if all of it's children are <code class="notranslate">true</code>, which, now, is not the case.</p>