【发布时间】:2016-05-07 13:15:45
【问题描述】:
我是使用 PHP 的 Twig 模板引擎,但是在呈现某些表单时遇到问题,特别是自动显示“选择”输入的当前选定项。
我正在从数据库中提取某些信息集,它们是:宠物、品种、位置,它们返回各自的值,例如“猫,狗”。
我不确定如何向用户显示这些输入,因为输入选择值会与文本不同,我确实想过使用 swtich 但不确定它是否是最佳选择。
这是我当前的代码:
$select = SELECT pet, breed, location FROM...;
$pet = array('cat', 'dog');
页面然后使用这些变量呈现视图。
<select class="form-control">
{% for p in pet %}
{% if p == select.pet %}
<option value="{{ select.pet }}" selected>{{ select.pet|capitalize }}</option>
{% else %}
<option value="{{ p }}">{{ p|capitalize }}</option>
{% endif %}
{% endfor %}
正如你所看到的,我目前需要依靠“pet”变量来循环输入,这就是我想要改变的,你也可以看到选择的文本只是值但大写意味着它是有限的。
如何创建不需要数组 $pet 的 twig 循环,并允许我指定每个值 => 文本,如下所示:
<option value="{{ select.pet }}" selected>Foo dog</option>
<option value="{{ select.pet }}">Bar cat</option>
【问题讨论】:
-
您应该有 2 个查询,一个用您数据库中的所有动物填充一个数组,然后您在 twig 中循环以填充您的选择,另一个用于获取所选动物的所有详细信息。 Imo 你应该使用动物的
id,而不是它的类型作为选择中的值。 -
我将如何填充动物数组,这需要单独的字段吗?数据库中的 pet 字段目前是一个包含这些宠物名称的 ENUM,您是否可以提供一个示例来说明您将如何以 twig 语法进行建议?
标签: php loops twig template-engine