我已经实施了一个表单来注册用户的电子邮件,以便我们发送更新。
表单在集成方面非常有效,但在生产中没有理由失败。
当我尝试发送消息时,我收到了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>
我没有成功检查权限和清除缓存,我没有想法。
谢谢。
答案 0 :(得分:2)
第/user/plugins/form/classes/form.php
行的文件552
包含此行代码if ($field['type'] == 'checkbox') {
,表示:如果字段类型为“复选框”,则表示...
您的错误“Undefined index:type”(与数组严格关联)表明他无法在$field
数组中找到并命名为“type”。
这段代码(第552行)也在名为post()
的函数中执行。
因此,我可以推断出:在发布请求后检查字段时,其中一个字段没有type
属性。
要解决此问题,您可以检查表单上生成的HTML输出(检查元素)并找到错误的格式化输入。
答案 1 :(得分:0)
您的复选框似乎有问题。
您可以发布表单定义吗?