Smarty:动态colspan

Smarty: dynamic colspan

我有一个聪明的模板,我想在其中制作一个动态的 colspan(一列 colspawned 通过完整的 foreach。例如,如果 foreach 只有一个元素,它只是一个单元格,但如果它有 100 个元素,它就是一个 colspan 通过第 100 个元素)

到目前为止,我的代码还不是动态的:

<table>
{foreach $myvar as $myvar}
  <tr>
   <td>{$myvar.text}</td>
   <td{if $myvar.isTrue == 1} style="background-color: green;"
 {/if}>
   {if $myvar.isSelected}<i class="fa fa-user"></i>{/if}
   </td>
   <td colspan=@count($myvar)>{$myvar.colname}</td>
  </tr>
 {/foreach}
</table>

如何做到动态?

在 Smarty 中计算数组的长度你会使用

{$myArray|@count}

您的代码应如下所示:

<table>
{foreach $myArray as $myVar}
  <tr>
   <td>
      {$myVar.text}
   </td>
   <td
      {if $myVar.isTrue == 1} style="background-color: green;"{/if}>
      {if $myVar.isSelected}<i class="fa fa-user"></i>{/if}
   </td>
   <td colspan="{$myArray|@count}">
      {$myVar.colname}
   </td>
  </tr>
 {/foreach}
</table>