如何使用 Mustache.php 的循环?

How to use loops with Mustache.php?

我需要用我的数组 foreach() 循环,

$input = array (
  1 =>   array (    'year' => '1534',    'name' => 'test1',  ),
  2 =>   array (    'year' => '1644',    'day' => 'test2' )
  3 =>   array (    'year' => '2015',    'day' => 'test3',  ),
   // ...
);
$m->render( $template, $input );

但是如果没有 "rooot key" 就不能引用...这是第一个问题...然后我使用 $input = array('list'=>$input); 解决了,好的,现在 list 键存在于 {#list} test {/list} 但它不循环 (!),它显示 "test" 一次...

我认为问题出在 $input 数组中。你不应该使用数字键。所以尝试改变数组

$input = array (
      1 =>   array (    'year' => '1534',    'name' => 'test1',  ),
      2 =>   array (    'year' => '1644',    'day' => 'test2' )
      3 =>   array (    'year' => '2015',    'day' => 'test3',  ),
    );

$input = array (
      array (    'year' => '1534',    'name' => 'test1',  ),
      array (    'year' => '1644',    'day' => 'test2' )
      array (    'year' => '2015',    'day' => 'test3',  ),
    );

这是我的示例,与您的代码略有不同:

    Mustache_Autoloader::register();
    $oMustache = new Mustache_Engine( array(
        'loader' => new Mustache_Loader_FilesystemLoader( 'templates' ),
    ));

    $aVariables = array(
        'list' => array(
            array( 'value' => 'one' ),
            array( 'value' => 'two' ),
            array( 'value' => 'three' ),
        )
    );

    $template = $oMustache->loadTemplate( 'my_template_name' );
    return $template->render( $aVariables );

这是小胡子模板:

{{#list}}
    test {{value}} <br/>
{{/list}}