符号和数据输入


Symfony and data input

目前我正在研究一个控制器类,它应该能够让客户将项目添加到数据库中的表中并查看这些项目(例如电影)。

我正在使用以下树枝代码:

{% extends 'base.html.twig' %}
{% block body %}
    {% if movies|length == 0 %}
        There are no movie items available. Add a movie <a href="#">here</a> to get started.
    {% elseif movies|length != 0 %}
        These are the results: ...
    {% endif %}
{% endblock %}

让用户/客户或在任何情况下将项目添加到需要显示的表中的最佳方法是什么?我应该让用户在与概述模板完全相同的页面上填写表单(我个人认为这不好,因为我想保持每个页面的目的分开),还是应该使用将用户发送到的表单制作一个不同的模板(尽管这需要重定向时间, 某些用户可能会对此感到恼火)?如您所见,我在"这里"一词上使用锚标签。如果要使用其他模板在表中创建记录,应如何设置锚标记?

正如Symfony的文档所示:

<a href="{{ path('_welcome') }}">Home</a>

路径表示_welcome,我认为它指的是指向某个控制器的路由的名称。最好使用此路径函数吗,我需要在它现在说_welcome的地方添加什么(或者我之前一句话是否正确)?为什么在给定的示例中有下划线?

我问这个问题是因为当我使用 MVC 时 ASP.NET 有一种叫做 ActionLink() 的方法,让我想知道这是否是重定向的最常见用途,因为您也可以将模板文件位置添加到锚标记href属性?

如果要添加新项目的表单很小(一个文本字段 + 一个提交按钮),则可以在同一页面中添加表单。

例如:

{% extends 'base.html.twig' %}
{% block body %}
// display your form here
    {% if movies|length == 0 %}
        There are no movie items available.
    {% elseif movies|length != 0 %}
        These are the results: ...
    {% endif %}
{% endblock %}

但实际上,由您决定是否希望它显示在同一页面中。

如果您决定将用户重定向到新模板,尤其是对于表单,请写下相应控制器的路由名称:

<a href="{{ path('your_route_name') }}">here</a>

因此,控制器的代码将被执行,并将重定向到表单的页面。

关于"_welcome",我不知道他们为什么这样写。这更像是命名布局文件的方式,而不是路由名称。