我使用 symfony 1.4.8 并且在尝试呈现隐藏的 csrf 表单字段时,没有将值添加到呈现的字段中。我以前做过这个没有问题。请参阅下面的示例以查看代码和呈现的输出。
代码:
<?php echo $form['_csrf_token']->render(); ?>
生成:
<input type="hidden" name="contact[_csrf_token]" id="contact__csrf_token" />
代码:
<?php echo $form['_csrf_token']->renderRow(); ?>
生成:
<tr>
<th><label for="contact__csrf_token"> csrf token</label></th>
<td><input type="hidden" name="contact[_csrf_token]" value="3cf960d4553e2649f86d0ccd12a26efe" id="contact__csrf_token" /></td>
</tr>
如您所见,第二种方法生成 csrf_token 的值,但它也生成所有其他行信息。该render()
方法应该只生成带有值的“小部件”(在这种情况下是隐藏的输入字段)。由于某种原因,它没有增加价值。