【问题标题】:What would be the best way to create my menu in Symfony 2在 Symfony 2 中创建菜单的最佳方式是什么
【发布时间】:2015-06-24 02:47:30
【问题描述】:

我正在管理我的投资组合,但我对我的菜单感到两难。我的投资组合的管理端允许我更改一些常规信息、添加、修改或删除项目。因此,我的管理员的所有页面都有相同的菜单。菜单有以下按钮:更改一般信息的按钮和添加新项目的按钮。如果数据库中有项目,菜单有更多的东西,一个选择我的项目名称和两个按钮来修改或删除项目。

起初,我为项目的所有内容制作了一个表单,另一个仅用于更改信息按钮,但在问了一些问题后,我经常被告知我不应该为此制作任何表单,而只是制作链接应该没问题。

我喜欢这个想法,但是,如果我这样做,我如何在单击修改时传递选定的项目?

<a href="{{ path("modify_project") }}">

这是我当前的代码:

<ul>
    <li>
         <a href="{{ path("admin_projet_ajout") }}">Ajouter un projet</a> 
    </li>
</ul>
{% if projets | length > 0%}
    <select>
        {% for id,projet in projets %}
            <option value={{ id }}>{{ projet }}</option>
        {% endfor %}
    </select>
    <ul>
        <li>
             <a href="{{ path("admin_projet_modifier") }}">Modifier</a> 
        </li>
        <li>
             <a href="{{ path("admin_projet_supprimer") }}">Supprimer</a> 
        </li>
    </ul>
{% endif %}

如果有人有更好的想法,我会很感兴趣的。

【问题讨论】:

    标签: symfony twig


    【解决方案1】:

    你看过这个:https://github.com/KnpLabs/KnpMenuBundle

    对不起,你是对的,答案其实是这个:

    <a href="{{ path('modify_project', { 'id': entity.id }) }}">{{ entity.id }}</a>
    

    Twig 会明白这一点,没什么可做的。

    【讨论】:

    • 感谢您的回答,它看起来真的很有趣,但是如果我使用它,我知道我可以创建一个包含我所有项目的下拉列表,但是当我单击按钮修改时我将如何做到这一点,例如,它转到某个根并且它传递了下拉菜单的选择元素?
    • 对不起,Kévin,我看错了你的问题,我只是添加了正确的答案。希望对你有用
    • 我试过了,但问题是我的模板中没有“实体”变量。我用我的正确代码更新了我的问题。
    • 你在哪里持久化你的项目?
    • 我不是,我正在从我的控制器向我的模板发送一个包含项目 ID 和名称的数组。如果您阅读了我更新的代码,您会看到我使用它来进行选择。但是如果有办法通过持久化我的项目实体来进行选择,那会更好,但仍然需要能够检查我的数据库中是否至少有一个项目。
    【解决方案2】:

    经过深思熟虑,最好的方法是表单,因为您无法更改链接的href,除非使用javascript,我不想这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-07
      • 1970-01-01
      • 2015-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多