1

我整理了一个报名表,允许注册用户提交内容。我遵循了 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>

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

错误请求请求 - 缺少必需的正文参数

错误截图

我虽然这可能意味着我需要保留示例中的“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 %}

但是,添加它并没有什么不同。

任何帮助表示赞赏。

4

1 回答 1

1

sectionId您的表格中缺少:

<input type="hidden" name="sectionId" value="{{ craft.sections.getSectionByHandle('sectionHandle').id }}">
于 2019-05-04T11:12:26.123 回答