<p dir="auto">Sometimes it is useful to create array of forms and render them in template separately with the same name ($form-&gt;getName()). But in this case Profiler will display only the last form in Panel, because FormDataCollector uses $form-&gt;getName() as index and the last form overrides previous forms.</p>
<p dir="auto">Possible solution is to fix <a href="https://github.com/symfony/symfony/blob/2.8/src/Symfony/Component/Form/Extension/DataCollector/FormDataCollector.php#L199">this</a> code to somethink like</p>
<div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="$name = $form-&gt;getName().'_'.uniqid();
$this-&gt;data['forms'][$name] = array();"><pre class="notranslate"><span class="pl-s1"><span class="pl-c1">$</span>name</span> = <span class="pl-s1"><span class="pl-c1">$</span>form</span>-&gt;<span class="pl-en">getName</span>().<span class="pl-s">'_'</span>.uniqid();
<span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-&gt;<span class="pl-c1">data</span>[<span class="pl-s">'forms'</span>][<span class="pl-s1"><span class="pl-c1">$</span>name</span>] = <span class="pl-en">array</span>();</pre></div>
<p dir="auto">In this case profiler will collect multiple forms correctly.</p>
<p dir="auto">Is it an expected behavior: in a controller that receives a request from the other controller using a <code class="notranslate">forward()</code> call, calling <code class="notranslate">$request-&gt;getQueryString()</code> returns the original query-string? (<code class="notranslate">Request $request</code> is injected as an argument in the controller action definition).</p>
<p dir="auto">As a workaround I had to replace <code class="notranslate">$request-&gt;getQueryString()</code> with <code class="notranslate">http_build_query($request-&gt;query-&gt;all())</code>.</p>