我的聪明的foreach有问题。它没有输出正确的东西:S 我尝试了很多东西,但从未奏效。
$data = array(
array('name' => "name", 'value' => "test"),
array('name' => "name", 'value' => "test"),
array('name' => "name", 'value' => "test"),
array('name' => "name", 'value' => "test"),
array('name' => "name", 'value' => "test")
);
$smarty->assign('invTalents', $data);
return array(
array(
'type' => 'html',
'html' => $smarty->fetch('*****/*****/smarty.tpl'),
),
);
在smarty.tpl中我得到了这个:
<table class="designedTable" style="width:96%; font-size:11px;">
<thead>
<tr>
<td class="clear_first brdRight">
</td><td class="white_last">
</td></tr>
</thead>
<tbody>
{foreach from=$invTalents item=data}
<tr>
<td class="clear_first brdRight">{$invTalents->data}</td><td class="white_last"><strong>0</strong></td>
</tr>
{/foreach}
</tbody>
<tfoot>
<tr><td class="clear_first brdRight"></td><td class="white_last"></td></tr>
</tfoot>
</table>
我做错了什么? :)
答案 0 :(得分:0)
@ H34D,请查看以下代码。
$data = array(
array('name' => "name", 'value' => "test"),
array('name' => "name", 'value' => "test"),
array('name' => "name", 'value' => "test"),
array('name' => "name", 'value' => "test"),
array('name' => "name", 'value' => "test")
);
$smarty->assign('invTalents', $data);
在您的视图中,您可以通过这种方式访问您的数组(即invTalents)。 (Smarty一般行为)
{foreach $invTalents as $inv}
{$inv.name}
{$inv.value}
{/foreach}
因此,根据您的视图代码的完全行为,您可以访问如下所示的数组。 (根据您的代码结构)
{foreach $invTalents as $inv}
<tr>
<td class="clear_first brdRight">{$inv.name}</td><td class="white_last"><strong>0</strong></td>
</tr>
{/foreach}
答案 1 :(得分:0)
{foreach from=$invTalents item=data}
通过此循环遍历invTalents
变量并将当前值分配给data
。因此,在输出中,您需要使用数据变量。此外,您还需要使用您在PHP中定义的密钥({1}}和name
来访问数组。
value
Smarty文档中的更多信息和示例:http://www.smarty.net/docsv2/de/language.function.foreach.tpl