CakePHP - 忽略具有名称属性的表单输入字段

CakePHP - Ignore form Input Field with Name Attribute

我有一个带有单选按钮的 CakePHP 表单,可以通过打开和关闭表单部分来增强前端。为了使单选按钮起作用,我需要一个将它们绑定在一起的名称属性。

但是,我的问题是 CakePHP POST 任何带有名称属性的输入字段,所以上面的单选按钮在提交表单时会导致错误,因为我的模型中没有 toggle-0 字段。

有没有办法阻止 CakePHP 发布单选按钮值?我可以在前端或后端实现吗?

这似乎是一件非常简单的事情(就像在 C# MVC 中一样),但我似乎无法在 Cake Cookbook 上找到任何信息。

相关单选按钮:

<input id="toggle-on-0" class="selection-toggle selection-toggle-left" name="toggle-0" value="false" type="radio">
<label for="toggle-on-0" class="selection-btn">On</label>
<input id="toggle-off-0" class="selection-toggle selection-toggle-right" name="toggle-0" value="true" type="radio">
<label for="toggle-off-0" class="selection-btn">Off</label>

如果我可以澄清问题或者您是否需要我的 add() 方法的代码,请告诉我。

这不是 CakePHP 的问题。通过同时使用 value 和 name 属性,您制作了收音机 control successful。正如 HTML 规范中提到的,单选输入现在将成为表单数据的一部分,并将发送到表单提交操作。

解决方案:

1:服务器端的唯一解决方案是从请求对象中删除无线电输入数据(如果存在)。

2:删除名称属性并更改您的前端逻辑。

3:发送 AJAX 请求,仅包含必需的 POST 数据。