Craft CMS的前端表单,供用户提交条目不起作用?

时间:2018-09-08 22:36:49

标签: forms twig craftcms

我整理了一份报名表,以允许注册用户提交内容。我遵循了Craft 3 Docs中给出的示例,但是它似乎仍然不起作用。希望有人能看到我看不到的东西。这是我用于表单的代码。

{% macro errorList(errors) %}
{% if errors %}
    <ul class="errors">
        {% for error in errors %}
            <li>{{ error }}</li>
        {% endfor %}
    </ul>
{% endif %}
{% endmacro %}

{% from _self import errorList %}

<form method="post" accept-charset="UTF-8">
    {{ csrfInput() }}
    <input type="hidden" name="action" value="entries/save-entry">
    {{ redirectInput('viewentry/{slug}') }}
    <input type="hidden" name="work" value="2">
    <input type="hidden" name="enabled" value="1">

    <label for="title">Title</label>
    <input id="title" type="text" name="title"
    {%- if entry is defined %} value="{{ entry.title }}"{% endif -%}>

    {% if entry is defined %}
        {{ errorList(entry.getErrors('title')) }}
    {% endif %}

    <label for="fields-projectDescription">Project Description</label>
    <textarea id="fields-projectDescription" name="fields[projectDescription]">
    {%- if entry is defined %}{{ entry.projectDescription }}{% endif -%}
    </textarea>

    <input type="submit" value="Publish">
</form>

提交此表单时收到的错误是:

  

错误请求请求-缺少必需的身体参数

Screenshot of Error

我虽然这可能意味着我必须保留示例中的“ body”字段。例如。

<label for="body">Body</label>
<textarea id="body" name="fields[body]">
    {%- if entry is defined %}{{ entry.body }}{% endif -%}
</textarea>

{% if entry is defined %}
    {{ errorList(entry.getErrors('body')) }}
{% endif %}

但是,添加它没有什么作用。

任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

您在表单中缺少sectionId

<input type="hidden" name="sectionId" value="{{ craft.sections.getSectionByHandle('sectionHandle').id }}">