当使用 FormHelper->create(...) 时,呈现的 HTML 如下所示:
<form action="/blogs/add" method="post" accept-charset="utf-8">
<div style="display:none;">
<input type="hidden" name="_method" value="POST">
</div>
<!-- omitted: form inputs -->
</form>
为什么显示的那个div是:none;风格在那里?如何让它不显示?
更新:澄清一下,我想知道为什么 div 和 div 中隐藏的输入都出现了。它们似乎不是必需的,因此我不希望它们存在。
最佳答案
对于最近来到这里的任何人,现在有一个不涉及自定义帮助程序的简单解决方案。使用 FormHelper templates ,有问题的代码块是由“hiddenBlock”模板生成的。 (在此处查看默认模板的完整列表:https://api.cakephp.org/3.2/class-Cake.View.Helper.FormHelper.html#%24_defaultConfig)。
因此,修改 CakePHP 文档中给出的示例以匹配这种情况并删除包装 <div>
周围隐藏<input>
对于 _method(假设 HTML5):
// In your View class
$this->loadHelper( 'Form' , [ 'templates' => 'app_form' ] );
// in config/app_form.php
return [
'hiddenBlock' => '{{ content }}'
];
我遇到了这个问题,因为我最近实现了一个不允许内联样式的内容安全策略,我想我应该分享我的工作解决方案。
关于html - CakePHP 隐藏_方法 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11571584/