Grav Form插件错误

时间:2017-09-23 15:30:02

标签: forms grav

我已经实施了一个表单来注册用户的电子邮件,以便我们发送更新。

表单在集成方面非常有效,但在生产中没有理由失败。

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

{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>

我没有成功检查权限和清除缓存,我没有想法。

谢谢。

2 个答案:

答案 0 :(得分:2)

/user/plugins/form/classes/form.php行的文件552包含此行代码if ($field['type'] == 'checkbox') {,表示:如果字段类型为“复选框”,则表示...

您的错误“Undefined index:type”(与数组严格关联)表明他无法在$field数组中找到并命名为“type”。

这段代码(第552行)也在名为post()的函数中执行。

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

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

答案 1 :(得分:0)

您的复选框似乎有问题。

您可以发布表单定义吗?