1

我想做的就是使用简单的继续标签,但它一直给我这样的错误:

字符串(145)“Smarty 错误:[在 module_db_tpl:onlyimage4;image_detail 第 26 行]:语法错误:无法识别的标签“继续”(Smarty_Compiler.class.php,第 590 行)”

我的代码如下:

{foreach from=$itemlist item="item"}

    < .. SOME CODE ..>

{if $maxCol == $colm}
  </div>
  {assign var ='colm' value = 0}
  {$row++}
  {continue}  **<- THIS IS THE PROBLEM**
{/if}

    <.. SOME CODE ..>
{/foreach}

有没有人知道什么是错的,我一直在谷歌搜索,没有看到这样的评论,每个人似乎都建议这应该可行..任何想法伙计们......

4

2 回答 2

2

老问题,但你需要使用:({$continue}包括$

于 2013-01-11T18:19:16.883 回答
1

对于 smarty 2:我认为标签不存在。如果您阅读此线程,您会看到有人想要它,并建议像这样修复它。(没试过)

编译器.continue.php

<?php 
function smarty_compiler_con­tinue($contents, &$smarty) 
{ 
return 'continue;'; 
} 
?>

(粗体部分是我的补充)

创建这两个文件(在本例中只有一个)并将它们放入您的插件目录(注意命名约定 compiler.xxx.php)。

好消息是,smarty 3 有这样的标签!请参阅手册,例如:

{$data = [1,2,3,4,5]}
  {foreach $data as $value}
    {if $value == 3}
      {* skip this iteration *}
      {continue}
    {/if}
    {$value}
  {/foreach}
  {*
    prints: 1 2 4 5
  *}
于 2011-04-19T09:05:15.350 回答