0

我已经实现了一个表格来注册用户的电子邮件,以便我们可以向他们发送更新。

该表单在集成时完美运行,但在生产中无缘无故失败。

当我尝试发送消息时,我收到一个 500 post 错误,其中包含以下信息:

{error: {type: "Whoops\Exception\ErrorException", message: "Undefined index: type",…}}
error : {type: "Whoops\Exception\ErrorException", message: "Undefined index: type" , …}
file : "/var/www/20170803_project/user/plugins/form/classes/form.php"
line : 552
message : "Undefined index: type"
type : "Whoops\Exception\ErrorException"

生成表单的代码:

{% set scope = scope ?: 'data.' %}
{% set multipart = '' %}
{% set method = form.method|upper|default('POST') %}

{% set action = form.action ? base_url ~ form.action : base_url ~ page.route 
 ~ uri.params %}

{% if (action == base_url_relative) %}
{% set action = base_url_relative ~ '/' ~ page.slug %}
{% endif %}

<form name="{{ form.name }}"
  action="{{ action }}"
  method="{{ method }}"{{ multipart }}
  {% if form.id %}id="{{ form.id }}"{% endif %}
  {% block form_classes %}
  {% if form.classes %}class="{{ form.classes }}"{% endif %}
  {% endblock %}
>

<div class="stay_tune pure-u-4-5 pure-g">
{% block inner_markup_fields_start %}{% endblock %}

<div class="group pure-u-3-5 email_register_container">
  <input name="email" type="email" required>
  <span class="highlight"></span>
  <span class="bar"></span>
  <label class="label">Email</label>
</div>

{% include "forms/fields/formname/formname.html.twig" %}

{% block inner_markup_fields_end %}{% endblock %}

{% block inner_markup_buttons_start %}
<div class="pure-u-2-5 register_button_container">
{% endblock %}
{{dump(form)}}
  <p class="message_form">{{form.process[1].message}}</p>
  <button type="submit" class="register_button" name="button">
{{form.button.value}}</button>
{% block inner_markup_buttons_end %}
</div>
{% endblock %}
</div>

{{ nonce_field('form', 'form-nonce')|raw }}
</form>

我确实检查了权限并清除了缓存但没有成功,我没有想法。

谢谢你。

4

2 回答 2

2

/user/plugins/form/classes/form.php该行的文件552包含这行代码if ($field['type'] == 'checkbox') {,这意味着:如果字段类型是“复选框”,那么...

您的错误“未定义的索引:类型”(与数组密切相关)表明他无法在$field数组中找到名为“类型”的索引。

这段代码(第 552 行)也在一个名为post().

因此,我可以推断:在发布请求后检查您的字段时,其中一个没有该type属性。

要解决此问题,您可以检查表单上生成的 HTML 输出(检查元素)并找到格式错误的输入。

于 2017-10-21T14:48:08.630 回答
0

您的复选框似乎有问题。

你能发布你的表单定义吗?

于 2017-10-01T12:28:31.687 回答