我在产品中使用此代码。显示产品类别的TPL文件:
{foreach from=Product::getProductCategoriesFull($product.id_product) item=cat}
<a href="{$link->getCategoryLink({$cat.id_category})}" title="{$cat.name}">{$cat.name}</a>,
{/foreach}
结果类似如下:名称:升降机,机器,无齿轮,
问题是:我如何选择我想要展示的元素(仅升降机,仅机器或仅无齿轮)??
我需要从foreach元素位置显示一个元素。
你应该只向你的TPL传递你想要显示的类别(计算应该在PHP文件中完成,而不是Smarty)。
如果你想把脏的扔掉
{break}
显示第一个元素后,或者如果您想根据类别的名称显示某个类别只需编辑代码如下:
{foreach from=Product::getProductCategoriesFull($product.id_product) item=cat}
{if $cat.name == "Lifts"}
<a href="{$link->getCategoryLink({$cat.id_category})}" title="{$cat.name}">{$cat.name}</a>
{/if}
{/foreach}
使用if语句?
{foreach from=Product::getProductCategoriesFull($product.id_product) item=cat}
{if $cat.name == 'Machines'}
<a href="{$link->getCategoryLink({$cat.id_category})}" title="{$cat.name}">{$cat.name}</a>,
{/if}
{/foreach}
{assign var="loop_middle" value=Product::getProductCategoriesFull($product.id_product)|@count/2}
{foreach from=Product::getProductCategoriesFull($product.id_product) item=cat name=foo}
{if $smarty.foreach.foo.last || $smarty.foreach.foo.iteration == $loop_middle|ceil}
<a href="{$link->getCategoryLink({$cat.id_category})}" title="{$cat.name}">{$cat.name}</a>
{/if}
{/foreach}
这将让你显示数组的最后一个元素(最后一个类别):
$smarty.foreach.foo.last
这将让你显示数组的中间元素(中间类别):
$smarty.foreach.foo.iteration == $loop_middle|ceil