Smarty检查是否是数组修复错误不能使用字符串偏移作为数组

时间:2013-02-18 15:07:54

标签: smarty smarty3

取决于面包屑的数量:

[trail] => Array
        (
            [crumb] => Array
                (
                    [url] => /app/system
                    [label] => System
                )

[trail] => Array
        (
            [crumb] => Array
                (
                    [0] => Array
                        (
                            [url] => /app/system
                            [label] => Sytem
                        )

                    [1] => Array
                        (
                            [url] => /app/system/edit
                            [label] => System Edit
                        )

                )

        )

聪明的我有:

{if $trail.crumb}
<ul class="breadcrumbs">
    {foreach $trail.crumb as $crum}
        <li itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
            <a href="{$crum.url}" itemprop="url" title="{$crum.label}"><span itemprop="title">{$crum.label|truncate:20}</span></a>
        </li>
    {/foreach}
</ul>
{/if}

在第一个例子中显示:

  

致命错误:不能将字符串偏移用作数组

有没有办法在不重复HTML的情况下执行此操作?

1 个答案:

答案 0 :(得分:0)

想出来,没有smarty3就无法做到这一点。

    {if isset($trail.crumb.0)}
        {assign var="crumbs" value=$trail.crumb}
    {else}
        {assign var="crumbs" value=[$trail.crumb]}
    {/if}
    {foreach $crumbs as $crum}

Smarty 3令人惊叹,他们修复了Smarty 2中遗漏的所有东西。