2017-07-02 18 views
0

すべての同様の質問をチェックしましたが、誰もこれに答えていないようです。配列の配列をMustacheで繰り返します。

$data = ['data' => array(
    ['id'=>'1','name'=>'Dupe', 'country' => 'Nigeria'], 
    ['id'=>'3','name'=>'Dipo', 'country' => 'Togo'] 
)]; 

$mustache->render('index', $data); 

index.htmlには、次のようになります。

<div>Hello</div> 

<br> 

<h2>Search for a person</h2> 
<form action="/search" method="POST"> 
    Input user's name or email: 
    <br><input type="text" name="key" value="" required> 
    <br> 
    <input type="submit" value="Search"> 
</form> 

{{ #data }} 
    <div> {{ name }} - {{ country }} </div> 
{{ /data }} 

それが現在空白のページを返しています。

答えて

1

私はそれを把握することができませんでしたが、オブジェクトに内側の配列を変換するだけで正常に動作します:

$m = new Mustache_Engine(); 
$data = [ 
    'data' => array(
     ['id' => '1', 'name' => 'Dupe', 'country' => 'Nigeria'], 
     ['id' => '3', 'name' => 'Dipo', 'country' => 'Togo'] 
    ) 
]; 
$data = json_decode(json_encode($data)); 

echo $m->render(
    '{{#data}} 
     <div> {{ name }} - {{ country }} </div> 
    {{/data}}', 
    $data 
); 

この出力:

<div> Dupe - Nigeria </div>
<div> Dipo - Togo </div>

お知らせ{{#data}}および{{/data}}にはspエース!

私はあなたの持っていないので、私はインラインテンプレート文字列を使用しました。