隐藏文本输入而不使其成为“ type =“ hidden”`

时间:2019-05-09 08:11:54

标签: cakephp cakephp-3.0

我有什么

我正在使用FormControllercreate inputs。 Java会出于内部目的频繁地更新特定的输入,我希望将其隐藏。在这种情况下,我不能使用type="hidden",而必须使用type="text",以便在提交时form tampering prevention不会对其进行检查。

我尝试过的

  • 如果需要隐藏整个表单,则向'hidden' => true选项中添加$this->Form->create()。但是,使用$this->Form->input()$this->Form->control()
  • 创建的确切属性似乎不适用于单个输入
  • 对于特定的输入,首先想到的是在其选项中添加'style' => 'display:none',但这似乎不是一个干净的CakePHP方式解决方案
  • 我想我已经看到有人在这里提到一种完全做到这一点的方法。我认为这是您要添加到选项中的属性。我同时使用此网站和Google搜索了答案和评论,但未找到任何结果。

请告知!

1 个答案:

答案 0 :(得分:2)

您可以创建一个隐藏的输入,并在需要时使其不受表单安全性的影响,方法是通过unlockField()方法解锁该字段:

$this->Form->unlockField('field_name');
echo $this->Form->hidden('field_name');

或通过传递false'skip'作为secure选项:

echo $this->Form->hidden('field_name', ['secure' => false]);
echo $this->Form->hidden('field_name', [
    'secure' => \Cake\View\Helper\FormHelper::SECURE_SKIP
]);

另请参见