【问题标题】:Twig recursive menuTwig 递归菜单
【发布时间】:2017-05-04 04:55:58
【问题描述】:

我有这张桌子

id | Type_number | Number
1    fax           01234
2    mobile        789-123
3    phone         000-555
4    fax           022354
5    phone         000-687

我需要按类型分组并按类型列出分组中的数字

示例

FAX
01234
022354

mobile
789-123

phone
000-555
000-687

如果我有这个代码:

<div class="colour_container">
{% for rec in list_number if rec.type == "fax" %}
{{ rec.type_number }}    {{ rec.number }}
{% endfor %}
</div>
    <div class="colour_container">
{% for rec in list_number if rec.type == "phone" %}
{{ rec.type_number }}    {{ rec.number }}
{% endfor %}
</div>

循环“for”功能只针对第一个循环“fax”在第二个没有。 为什么?

【问题讨论】:

  • 在将rec 数组传递到模板之前,您可以尝试将其转储到 PHP 中吗?您可以使用print_r($rec) 来输出数组的原始内容。

标签: loops frameworks twig slim


【解决方案1】:

它对我有用。试试这个例子。

index.php

<?php
require 'vendor/autoload.php';

$app = new \Slim\Slim(array(
    'view' => new \Slim\Views\Twig()
));

$view = $app->view();

$view->parserExtensions = array(
    new \Slim\Views\TwigExtension()
);

$view->parserOptions = array(
    'debug' => true
);

$menu = array(
    array(
        "id" => 1,
        "type" => "fax",
        "number" => "01234"
    ),
    array(
        "id" => 2,
        "type" => "mobile",
        "number" => "789-123"
    ),
    array(
        "id" => 3,
        "type" => "phone",
        "number" => "000-555"
    ),
    array(
        "id" => 4,
        "type" => "fax",
        "number" => "022354"
    ),
    array(
        "id" => 5,
        "type" => "phone",
        "number" => "000-687"
    )
);

$app->get('/', function () use($app, $menu) {
    $app->render('index.twig', array(
        'list_number' => $menu,
        'types' => array("fax", "mobile", "phone")
    ));
});

$app->run();

index.twig

<div class="colour_container">
    {% for type in types %}
        {% set printed = false %}
        {{ type }}
        <br/>
        {% for rec in list_number if rec.type == type %}
            {{ rec.number }}<br/>
        {% endfor %}
        <br/>
    {% endfor %}
</div>

【讨论】:

  • 仅对第一个循环起作用。 (第一种)
  • @Simsar78 我刚刚试了一下,它工作正常。
  • 你有两个版本 2?我使用 1.1 版,因为我没有 php 7
  • @Simsar78 在这个例子中我使用的是 PHP 5.6 和 Twig 1.*。也许更容易就您面临的问题创建另一个问题,包括您正在使用的软件包的版本和环境。
猜你喜欢
  • 1970-01-01
  • 2023-04-05
  • 2013-11-05
  • 2013-06-13
  • 2015-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-24
相关资源
最近更新 更多