我已经实现了一个表单注册用户的电子邮件,以便我们可以向他们发送更新。
表单在集成上工作得很好,但在生产中却毫无理由地失败了。
当我尝试发送消息时,我收到一个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>我确实检查了权限并清除了缓存,但没有成功,我没办法了。
谢谢。
发布于 2017-10-21 22:48:09
552行的文件/user/plugins/form/classes/form.php包含这行代码if ($field['type'] == 'checkbox') {,这意味着:如果字段类型是'checkbox‘,那么...
你的错误"Undefined index: type“(严格地与数组相关)指出他无法在$field数组中找到并索引名为”type“的类型。
这段代码(第552行)也在一个名为post()的函数中执行。
因此,我可以推断出:在post请求之后检查字段时,其中一个字段没有type属性。
要解决这个问题,您可以检查表单上生成的HTML输出(检查元素),并找到错误的格式化输入。
发布于 2017-10-01 20:28:32
您的复选框似乎有问题。
你能发布你的表单定义吗?
https://stackoverflow.com/questions/46381230
复制相似问题