cakephp表单输入没有name属性

时间:2013-01-14 17:32:14

标签: cakephp cakephp-2.2

我正在使用CakePHP 2.2.4。

我正在使用表单助手来创建表单。我需要一个没有name属性的表单输入。

这可以通过formhelper实现,还是应该使用HTML来创建此表单?

例如在HTML中:

<input type="text" maxlength="20" autocomplete="off" class="card-number stripe-sensitive required" />

基本上我能使用CakePHP中的formhelper来完成上述操作吗?

感谢。

2 个答案:

答案 0 :(得分:10)

您可以否决$options数组中的任何属性,这是input()方法的第二个参数。从技术上讲,你可以做到:

echo $this->Form->input('Model.field', array(
    'label' => false,
    'div' => false,
    'name' => false,
    'maxlength' => 20,
    'autocomplete' => 'off',
    'class' => 'card-number stripe-sensitive'
));

但是请注意,如果您想在控制器/模型中对数据执行任何操作,则删除name属性会使整个字段无效,因为$this->data数组从名称中获取它的名称输入字段的属性。

答案 1 :(得分:1)

CakePHP需要name属性才能知道表单提交的内容。我不确定为什么你会希望那里没有名字属性。

如果您担心命名输入会将某些内容传递给保存方法,您可以在保存/验证之前始终使用控制器中的unset将其从$ this-&gt; request-&gt;数据中删除。

否则,您可以手动将标记添加到视图中,但又不确定为什么需要未命名的输入元素。